Linux之Shell编程(16)--sed关键字详解演示
Posted 菠萝印象威
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之Shell编程(16)--sed关键字详解演示相关的知识,希望对你有一定的参考价值。
今天继续演示sed的其它用法。
-f:把多个子命令操作写入脚本文件,然后使用 -f 选项来指定该脚本。
test.sh内容:
sed.sh内容:
注意:
脚本文件中的子命令串不需要输入单引号。
执行结果:
sed常用flags标记
g:对数据中所有匹配到的内容进行替换,如果没有 g,则只会在第一次匹配成功时做替换操作。(这部分已演示)
w: 将缓冲区中的内容写到指定的 file 文件中。
data.txt内容:
结果:
运行后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中变化后的行的内容。指令前内容:
指令后内容:
2.如果改为sed -i ‘s/1/x/w file.txt’ data.txt
结果如下
可以看到:data.txt中的内容也会改变,但file.txt依旧会先清除原始文件内容,再接收data.txt变化的内容。
r:将一个文件的数据插入到当前数据流的指定位置
file.txt内容:
data.txt内容:
指令运行结果:
运行后的data.txt内容
注意:
sed -i ‘2r file.txt’ data.txt
这条指令的意思是,将file.txt中的内容输出到data.txt的第二行之后。不加-i不会改变data.txt文件内容。
以上是关于Linux之Shell编程(16)--sed关键字详解演示的主要内容,如果未能解决你的问题,请参考以下文章