sed命令处理文件内容是十分强大的,最近由于项目需要编写文本处理脚本,总结记录以下sed的筛选替换、增加、删除、查找命令。
筛选并替换
1、筛选temp.txt文件中的keyword字段,并替换为new word
sed -i 's/keyword/new word/g' temp.txt
其中-i是直接在原文中修改。如果想先实验一下,并不想直接改动原文本,可以删掉-i
2、筛选temp.txt文件中的带keyword的整行,并替换为this is a new line
sed -i 's/.*keyword.*/this is a new line/g' temp.txt
其中.*keyword.*是利用正则表达式进行匹配。
注意:如果筛选的关键字或者待替换的字段中有/字符,沿用上面的格式会提示有问题。此时需要将sed命令中用作的分隔符的 / 改为 ~
例如将temp.txt文件中带apple/banana整行替换为they are foods/fruits
sed -i 's~.*apple/banana.*~ they are foods/fruits~g' temp.txt
3、修改temp.txt文件中指定第4行的内容为change the 4th line
sed -i '4s:/.*/change the 4th line' temp.txt
增加行
4、在temp.txt文件的第1行之后增加add a new line
sed -i '1a:add a new line' temp.txt
5、在temp.txt文件的第2行之前增加add a new line
sed -i '2i:add a new line' temp.txt
删除行
6、删除temp.txt文件中带keyword的行
sed -i '/.*keyword.*/d' temp.txt
7、删除temp.txt文件中第5~8行
sed '5,8 d' temp.txt
查看
8、查看temp.txt文件中第5~8行内容
sed -n '5,8 p' temp.txt
9、查看temp.txt文件中带keyword字段的行
sed -n '/keyword/p' temp.txt