sed替换

Posted mxmtxc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed替换相关的知识,希望对你有一定的参考价值。

sed
sed是一种非交互式的流编辑器,可动态编辑文件。vim是打开文件后和用户进行互动操作的,sed是非互动的,它处理的对象是文件的数据流。sed的工作模式是,对每一行数据,若符合样式,就执行指定的操作。
sed工具的语法如下:

sed ‘样式命令‘ 文件
1
意思是,样式匹配成功后就执行指定的命令。它不会更改文件的内容,而是读取文件之后,经过编辑,然后把结果显示到标准输出上。如果想存储执行结果,就得自行将输出转向到指定的其他文件中。
1. sed ‘1,4d’ file
意思:把第一行到第四行之间的数据删除,剩下的显示出来。d是sed的删除命令。
2. sed ‘/La/d’ file
意思:把含有La的行删除,剩下的显示出来。//表示搜索。
3. sed ‘/[0-9]{3}/d’ filename
意思:把含有连续3个数字的行删除。
4. sed ‘/^$/d’
意思:删除空白行。
5. sed ‘/La/!d’ file
意思:把不含有La的行删除,!表示不匹配则执行命令。
6. sed -n ‘/La/p’ file
意思:p是显示命令。把匹配的行显示出来。
7. sed ‘s/La/Oo/g’ file
意思:s是替换命令,将La替换成Oo,g表示全局替换。

单文件替换
sed ‘s/test/zcx/g’ ./test1.dat > result1.dat
意思:替换test1.dat文件中的”test”为”zcx”,将结果输出到result1.dat

多文件替换
grep “test” -rl ./* | xargs sed -i ‘s/test/zhaochaoxing/g’
意思:grep搜索含有字符串”test”的文件,然后对每个文件执行sed命令。xargs存在的意义是避免因grep到的文件过多处理不了时造成溢出。sed -i 表示就地处理,将结果存回原文件。
————————————————
版权声明:本文为CSDN博主「simon-zhao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010902721/java/article/details/45980255

以上是关于sed替换的主要内容,如果未能解决你的问题,请参考以下文章

linux sed 替换

Solaris里面的sed怎样把指定字符替换成换行

linux 特殊符号怎样用sed替换

如何用sed命令替换一行中的某个字符串

新手用bash的sed这样替换怎么不成功呢?

sed匹配全行,行首,行尾后替换或添加字符