Linux 下的 sed 命令功能十分强大,能够完美地配合正则表达式使用,灵活巧妙地利用sed命令,可以极大地提高工作效率。
sed 的用法非常多,不可能一一枚举,本文仅针对个人实践过程中比较常见的几个功能作简要介绍。
1.替换操作
直接编辑文件选项 -i,会把 file 文件中每一行第一个匹配项替换为指定项:
sed -i 's/pen/pencil/' file
其中,s 表示替换操作。使用后缀 /g 标记会替换每一行中的所有匹配,若把 -i 去掉,则不会编辑文本,只会将改变显示在控制台:
sed -i 's/pen/pencil/g' file
2.删除操作
删除空白行:
sed '/^$/d' file
删除文件的第2行:
sed '2d' file
删除文件的第2行到末尾所有行:
sed '2,$d' file
删除文件最后一行:
sed '$d' file
删除文件中所有开头是 hello 的行:
sed '/^hello/'d file
3.打印奇数或偶数行
方法一:
sed -n 'p;n' test.txt #奇数行
sed -n 'n;p' test.txt #偶数行
方法二:
sed -n '1~2p' test.txt #奇数行
sed -n '2~2p' test.txt #偶数行
4.打印前几行后退出 sed
打印完第10行后,退出 sed:
sed '10q' file
上述中所有操作,加上 -i 选项后才能达到编辑文件的效果,若不加 -i ,则只会在控制台显示改变。
更多更巧妙的 sed 功能,敬请期待!