Linux sed 命令高效文本操作

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 功能,敬请期待!

发布了225 篇原创文章 · 获赞 648 · 访问量 89万+

猜你喜欢

转载自blog.csdn.net/huangfei711/article/details/80714795