首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用纯Bash将内容追加到JSON数组(即替换最后一个']‘字符),而无需将整行内容读取到内存中

使用纯Bash将内容追加到JSON数组,而无需将整行内容读取到内存中,可以通过以下步骤实现:

  1. 使用sed命令将JSON数组的最后一个']'字符替换为空格,将结果保存到临时文件中:sed '$ s/]$/ /' input.json > temp.json
  2. 使用echo命令将要追加的内容添加到临时文件的末尾:echo ' "new_item"' >> temp.json
  3. 使用echo命令将']'字符重新追加到临时文件的末尾:echo ']' >> temp.json
  4. 将临时文件的内容复制回原始文件:cp temp.json input.json

完成以上步骤后,内容就会成功追加到JSON数组中,而无需将整行内容读取到内存中。

注意:以上示例中的input.json为原始JSON文件的路径,new_item为要追加的内容。根据实际情况修改这些参数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux实战(一)

.*\1' aa 如果west被匹配,则es就被存储到内存,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个\1 ,\1也就是es,因为前面把es存储到了内存并默认标记为1了,找到就显示该行...如果没有指定地址,sed处理输入文件的所有行。  地址是一个数字,则表示行号;是“$"符号,则表示最后一行。...替换s命令 $ sed 's/test/mytest/g' example 在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。...如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令影响第二个替换命令的结果。...第二条语句的意思是,当到达最后一行后,G命令取出保持缓冲区的行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中的行的末尾。在这个例子中就是追加到最后一行。

2.2K10

Python学习之文件操作【基本操作,JSON文件操作】

1、基本操作 在计算机要操作文件的套路非常固定,一共包含三个步骤: 打开⽂件 ; 、写⽂件 ; ⽂件内容内存 ; 写: 内容写⼊⽂件 。 关闭⽂件 。...序号 函数/方法 说明 1 open 打开文件,并且返回文件操作对象 2 read 文件内容取到内存 3 write 指定内容写入文件 4 close 关闭文件 注: 1、open 函数的第...ab:代表用追加写的方式打开一个二进制文件 2、按行读取 read ⽅法默认会把⽂件的所有内容⼀次性读取到内存 ,但是如果⽂件太⼤,对内存的占⽤会⾮常严重。 解决方案就是: 按行读取文件内容。...2.1 readline ⽅法 readline 方法可以一次读取一行内容,⽅法执⾏后,会把⽂件指针移动到下⼀⾏,准备再次读取readline 方法读取到文件最后,返回长度为 0 的字符串 ”” 。...; 括号保存数组; 对象数组可以相互嵌套; 数据采用键值对表示; 多个数据由逗号分隔; 3.3 值 数字(整数或浮点数); 字符串(在双引号); 逻辑值(true

1.1K20
  • C语言字符串IO

    使用 gets函数读取整行输入,直到遇到换行符,然后丢弃换行符(与fgets函数区分),存储其他的字符,并在这些字符后面加上一个字符使其成为一个C字符串。...= '\n') i++; words[i] = '\0'; //\0替换为\n 如何丢弃掉仍存在输入行字符串?...(类似于gets) 如果gets_s()函数读取到最大字符都没有读取到换行符时,会执行以下几步: 首先把目标数组的首字符设置为空字符,读取并丢弃随后的输入直至读取到换行符或文件结尾,然后返回空指针。...s_gets()函数 上面案例演示了fgets()函数的一种使用方法:读取整行输入并用空字符替换换行符,或者读取一部分输入,并丢弃其余部分。 既然没有处理这种情况的函数,我们可以创建一个。...Side A 分析:由于dont缺少了一个表示结束的空字符,所以它不是一个字符串,因此puts()不知道在哪里停止,它会一直打印dont后面内存内容,知道发现一个字符为止。

    4.6K10

    shell脚本快速入门之-----正则三剑客之二sed用法大全!!!

    sed 工作的环境是在内存更改写入文件 因为内存是断电就没了 那么怎么才能将写入的数据写到硬盘 sed-i 覆盖一下 否则你改了也没用 工作原理图 ?...在使用 sed 命令进行替换操作时需要用到 s(字符替换)、c(整行/整块替换)、y(字符转换)命令选项,常见的用法如下所示。...sed 's/the/THE/' test.txt //每行的第一个the 替换为 THE sed 's/l/L/2' test.txt //每行的第 2 个 l 替换为 L sed 's/the.../THE/g' test.txt //文件的所有the 替换为 THE sed 's/o//g' test.txt //文件的所有o 删除(替换为空串) sed 's/^/#/' test.txt...//包含the 的行另存为文件 out.file sed '/the/r /etc/hostname' test.txt //文件/etc/hostname 的内容加到包含 the 的每行以后

    1.6K31

    shell_正则_变量_tr_awk_sed_cut(1)

    在这个模式, 你可以使用上下左右按键来移动光标,你可以使用**删除字符或删除整行**来处理文件内容, 也可以使用复制、粘贴来处理你的文件数据。...】三个的任何一个,就可以光标移动到最底下那一行。在这个模式, 可以提供查找、读取、存盘、替换字符、离开vi、显示行号等的动作则是在此模式完成的!...name="wang" 注意: 重新赋值变量,会重新开辟一个空间存放wang,不会立即删除Mage,删除也会消耗资源,标记等待回收,下次内容会覆盖 2.命令赋值 name=`hostname` 3.变量内存放多行内容...,可以脚本添加到PATH(hash查看) SHELL USER 当前的用户 UID 用户的id HOME...-e表示多点编辑,第一个编辑命令删除/etc/passwd第三行到末尾的数据,第二条命令搜索bash替换为blueshell。

    1.1K20

    Python 读取文本文件的内容

    如果数据的数据量比较大、数据类型繁多且要求便于搜索,我们一般会选择存储到数据库。如果数据内容只是一些的文本信息,我们可以数据存储到 TXT 、JSON、CSV 等文本文件。...类似存储小说、日志内容等场景,一般是内容存储到文本文件。数据已经存储到 txt 文件,那该如何读取了?本文的主要内容是讲解如何读取文本文件的内容。...文本文件就好比一个存储水的水池,数据就类似水。从文本文件读取数据好比让水池排水。在这过程,我们需要一条“管道”才能从读取到数据。在 Python 语言中,open() 函数就是这样的“管道”。...它是一次性文件的全部内容取到内存。如果文件太多的话,会把内存给撑爆。为了保险起见,我们通常每次只读取一小段区间内容,然后反复调用。...这种读取方式虽然效率不高,但是占用内存小,能做到即用。

    2.2K10

    SHELL(bash)脚本编程八:技巧

    /bin/bash grep -vxf a b|tee c|wc -l 此方案利用grep的-f选项文件a的每行最为匹配模式匹配文件b的内容,-v表示不匹配,然后通过管道交给命令tee写入文件c,...这样处理能充分发挥服务器性能,但它的一个问题是,如果文件较大,对内存的消耗也会很大。 一种解决方案是: #!...bash使用一个称为进程替换的功能来弥补这些不足,进程替换实际上是命令替换和管道的组合,和命令替换类似,bash运行一个命令,但令其运行于后台而不再等待其完成。...关键在于Bash为这条命令打开了一个用于和写的管道,并且绑定到一个文件名,最后展开为结果。 利用进程替换的这一特性,可以想到另外一种并发的方式: #!...但本例,需要重点理解的是:IFS在数组扩展的特性,命令grep和sort的运用,以及进程替换使用

    62620

    sed的用法详解

    /old/new/每行的第一个old替换为new s/old/new/3每行的第三个old替换为new s/old/new/g 所有的old替换为new 替换操作的分割符/可改为其他字符,如# $...删除每行第二个和最后一个字符 sed -i 's/.//2;s/.$//' a.txt 删除每行第二个和最后一个单词 sed -r 's/[a-Z]+//2;s/[a-Z]+([^a-Z]*)$/\1.../' a.txt 文件每行的第一个和第二个字符互换 sed -r 's/^(.)(.)(.*)/\2\1\3/' a.txt 文件每行的第一个和第二个单词互换 sed -r 's/([a-Z]+...:2cYY 第2行的内容修改为YY sed ‘2iXX’ m.txt sed ‘2aXX’ m.txt sed '2cXX' m.txt 处理多行文本:修改后的文本有多行时,以换行符\n分割,或者使用...a[$0]++' filename a为数组名 $0为处理对象 表示要去除的是整行重复的内容,如果要去除的是字段重复的行,可以$0改为$1 $2 提取测试文件:awk -F: '' /etc/passwd

    4.3K31

    2020年10月笔记

    参考:浅析 PHP7 的垃圾回收机制 3.列举熟悉的PHP框架,并说出该框架的特点 4.常见的状态码,说明其含义 5.解释:脏,幻,不可重复读 脏:脏是指一个事务访问到了另一个事务未提交的数据...它可以本地内容,同步到远程服务器。 $ rsync -av source/ username@remote_host:destination 也可以远程内容同步到本地。...他的思想是先对数组进行分割, 把大的元素数值放到一个临时数组里,把小的元素数值放到另一个临时数组里(这个分割的点可以是数组的任意一个元素值,一般用第一个元素,$array[0]),然后继续把这两个临时数组重复上面拆分...,最后把小的数组元素和大的数组元素合并起来。...主键索引的叶子结点存储了整一行的内容(聚簇索引),使用主键可以快速获取到整行的数据。 2. 非主键索引的叶子结点存储的是主键的值,所以主键字段占用空间不宜过大。

    54630

    Bash脚本编程(原创)

    -a array 单词清单放入 array 数组 first last 读取输入到第一个空格或回车,输入的第一个单词放入 first ,而其他的则放在 last -p prompt 打印提示...5.1、函数定义 (1)构建函数 格式: function function_name { comand(s); command(s); } (2)复位函数:使用 unset 命令函数从内存删除。...,同时可以使用命令替换来捕捉函数的输出,即把整个函数放在括号内,前面加$(:$(function_name)),或者通过引号把输出赋值给一个变量。...6、数组数组:变量阵列,通过同一个名字进行存取操作; 连续的多个独立的内存空间(元素),每个内存空间相当于一个变量; bash数组支持稀疏格式; 数组元素:数组名[索引] 索引...word所指明的字符,删除此字符及其右侧的所有内容; ${var%%word*}:自右而左,查找var变量存储的字符串中最后一次出现的由word所指明的字符,删除此字符及其右侧的所有内容; 示例:

    1.4K30

    Linuxawk的使用方法详解

    pattern语句块的通用命令是最重要的部分,它也是可选的。如果没有提供pattern语句块,则默认执行{ print },打印每一个取到的行,awk读取的每一行都会执行该语句块。...print NF可以打印出一行最后一个字段,使用(NF-1)则是打印倒数第二个字段,其他以此类推: [root@localhost ~]# echo -e "line1 f2 f3\n line2...echo -e "line1 f2 f3\n line2 f4 f5" | awk '{print $(NF-1)}' f2 f4 统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容...因为数组索引(下标)可以是数字和字符串在awk数组叫做关联数组(associative arrays)。awk 数组不必提前声明,也不必声明大小。...split 可按给定的分隔符把字符串分割为一个数组

    3.6K31

    14:IO之字符字节流

    read():一次一个字符,且会继续往下。(方法1)read()读取单个字符。read(char[] cbuf)字符读入数组。...(方法2)其实都是按照每次只读取一个字符的方式读取的,只是读到数组中会把读取到的数据存放在数组,起到一个临时缓存的作用,提高了读取效率。...fr.read(buf);//取到字符存储到数组。...3)每次取出的时候,都有一个指针在移动,取到数组结尾就自动回到数组头部,这样指针在自增 4)取出的时候,数组的元素再减少,取出一个,就减少一个,直到减到0数组取完 5)到了文件的结尾处,存入最后一组数据...* * 2,需求:一个文本文件内容显示在控制台上。 * * 3,需求:一个文件文件内容复制到的另一个文件

    81190

    【Linux系统编程】环境变量详解

    我们学过C语言,对于一个字符指针来说,它指向的内容无非就两种: 指向一个字符存储一个字符变量的地址) 指向一个字符串(存储的是一个字符串的首字符地址) 那在这里我明确的告诉大家它指向的就是一个字符串...,并且: char* envp[]这个字符数组最后一个元素里面一定存的是NULL,当然其实不一定总是最后一个元素,应该说第一个无效元素存的是NULL。...环境变量的组织方式 每个程序都会收到一张环境变量表,环境变量表是一个字符指针数组,每个指针指向一个以’\0’结尾的环境字符串(环境变量名及其值组成的字符串) 7....那再来思考一个问题: 我们说环境变量是一张内存级的表,用户登录时由系统形成。那么表的数据都是从哪来的呢? ,表的环境变量信息呢其实都是从系统的相关配置文件读取进来的。...那bash就会把这个环境变量及其赋值作为一个字符串添加到环境变量表的指针数组

    27810

    Linux基础命令行使用技巧

    ,而是把上一条命令的每处内容替换掉,此时我们可以使用!...进行分隔,太慢可以进行组合使用: #引用 ec 打头命令的最后一位参数,并只保留路径尾部 ~$ !...x 删除光标下的字符 X 删除光标左边的字符 dm m 为某个移动指令,如 db 删除光标左边的单词 ,dl则是删除光标右边的单词(值得学习) D 从光标处删除到行尾 dd 删除整行内容 注意:通过删除命令删除的内容...,Shell 并没有丢弃,而是将其保留在了删除缓冲器,我们可以通过执行u命令来恢复这些删除的内容(可以多次使用) 替换文本:在删除该内容后再进入插入模式重新输入外,也可以使用 vi 编辑模式所提供的文本替换命令...cm m 为某个移动命令,如 cw 光标右边的单词删掉后进入插入模式 C 从光标处删除到行尾,并进入插入模式 cc 删除整行,并进入插入模式 r 替换光标下的字符 R 进入替换文本模式,直到按 Esc

    6K20

    Linux基础命令行使用技巧

    ,而是把上一条命令的每处内容替换掉,此时我们可以使用!...进行分隔,太慢可以进行组合使用: 12#引用 ec 打头命令的最后一位参数,并只保留路径尾部~ !...x 删除光标下的字符 X 删除光标左边的字符 dm m 为某个移动指令,如 db 删除光标左边的单词 ,dl则是删除光标右边的单词(值得学习) D 从光标处删除到行尾 dd 删除整行内容 注意:通过删除命令删除的内容...,Shell 并没有丢弃,而是将其保留在了删除缓冲器,我们可以通过执行u命令来恢复这些删除的内容(可以多次使用) 替换文本:在删除该内容后再进入插入模式重新输入外,也可以使用 vi 编辑模式所提供的文本替换命令...cm m 为某个移动命令,如 cw 光标右边的单词删掉后进入插入模式 C 从光标处删除到行尾,并进入插入模式 cc 删除整行,并进入插入模式 r 替换光标下的字符 R 进入替换文本模式,直到按 Esc

    5.8K63

    Linux的文本处理工具浅谈-awk sed grep

    CONVFMT 数字转换格式(默认值为%.6g) ENVIRON 环 境变量关联数组。 ERRNO 最后一个系统错误的描述。...dandan,CSO' person.txt #替换第2行的内容 文本替换 s:单独使用每一行第一处匹配的字符串进行替换 g:每一行进行全部替换 -i:修改文件内容 sed软件替换模型...的功能可以记住正则表达式的一部分,其中,\1为第一个记住的模式一个小括号的匹配内容,\2第二记住的模式,第二个小括号的匹配内容,sed最多可以记住9个。...*$–>表示以空格tea起始,任意字符结尾,实际就是匹配oldboy字符串后,紧接着的字符串□teacher.; 后面被替换内容的\1就是取前面的括号里的内容了,也就是我们要的oldboy字符串。....*)#chkconfig \1 off#g'|bash chkconfig --list|grep "3:on" 特殊符号&代表被替换内容 #→1到3行的C替换为--C-- sed '1,3s#C

    3.6K41

    【Socket】有限状态机

    根据协议规定(如下图所示),我们判断HTTP头部结束的依据是遇到一个空行,该空行仅包含一对回车换行符,如果一次操作没有读入HTTP请求的整个头部,没有遇到空行,那么我们需要继续等待数据发送并读入。...每完成一次操作,就要判断有没空行(空行前面是请求行和头部域),同时可以完成对整个HTTP请求头部的分析。 如下代码,我们使用主从两个状态机来实现简单的HTTP请求的读取与分析。...) if ( temp == '\r' ){// 当前为\r说明可能读取到一个完整的行 /* 如果\r是当前已经读到的数据的最后一个,说明当前还没有读取到一个整行...) if ( temp == '\r' ){// 当前为\r说明可能读取到一个完整的行 /* 如果\r是当前已经读到的数据的最后一个,说明当前还没有读取到一个整行...char c1[],char类型数组,或char*指向一个char类型数组

    48810
    领券