Linux之Shell编程(16)--sed关键字详解演示(三)

今天继续演示sed的其它用法。
-f:把多个子命令操作写入脚本文件,然后使用 -f 选项来指定该脚本

test.sh内容:
在这里插入图片描述
sed.sh内容:
在这里插入图片描述

注意:
脚本文件中的子命令串不需要输入单引号。

执行结果:
在这里插入图片描述

sed常用flags标记

g:对数据中所有匹配到的内容进行替换,如果没有 g,则只会在第一次匹配成功时做替换操作。(这部分已演示)

w: 将缓冲区中的内容写到指定的 file 文件中
data.txt内容:
Linux之Shell编程(16)--sed关键字详解演示(三)_第1张图片

结果:
Linux之Shell编程(16)--sed关键字详解演示(三)_第2张图片
运行后file.txt内容
在这里插入图片描述
可以发现,w的作用就是将符合指令变化的行的内容输出到另一个文件中,输出的文件为指令中的操作的文件,末尾的文件为原始文件。

注意:
1.sed ‘s/1/x/w file.txt’ data.txt
这条指令的意思是,将data.txt中经过处理变化(1变为x)后的行的内容,输出到file.txt中。
输出后,data.txt内容不变,file.txt会清掉原来内容,只会接收data.txt中变化后的行的内容。

指令前内容:
Linux之Shell编程(16)--sed关键字详解演示(三)_第3张图片
指令后内容
Linux之Shell编程(16)--sed关键字详解演示(三)_第4张图片
2.如果改为sed -i ‘s/1/x/w file.txt’ data.txt
结果如下
Linux之Shell编程(16)--sed关键字详解演示(三)_第5张图片
可以看到:data.txt中的内容也会改变,但file.txt依旧会先清除原始文件内容,再接收data.txt变化的内容。

r将一个文件的数据插入到当前数据流的指定位置

file.txt内容:
Linux之Shell编程(16)--sed关键字详解演示(三)_第6张图片
data.txt内容:
Linux之Shell编程(16)--sed关键字详解演示(三)_第7张图片
指令运行结果:
Linux之Shell编程(16)--sed关键字详解演示(三)_第8张图片
运行后的data.txt内容
Linux之Shell编程(16)--sed关键字详解演示(三)_第9张图片

注意:
sed -i ‘2r file.txt’ data.txt
这条指令的意思是,将file.txt中的内容输出到data.txt的第二行之后。不加-i不会改变data.txt文件内容。

你可能感兴趣的:(Shell,linux,shell,编程语言)