sed:Stream EDitor
什么是sed呢?sed被称为linux文本处理三剑客之一,另外两个就是大名鼎鼎的grep和awk。sed是非交互性的流编辑器,在处理文本时一次只读取一行文本,然后基于所给定的编辑脚本对模式空间中的内容做编辑处理并把处理后的结果输出至标准输出。接着处理下一行文本,这样不断重复,直到文件的末尾。sed命令默认不会对原文件做修改,因此你可以使劲的造,而不必担心有什么可怕的后果。
下面来说说sed命令的用法:
格式:sed [option]… ‘script’ inputfile…
sed [option] ‘addr1,[addr2]编辑命令’ inputfile…
sed [option] “addr,[addr2]编辑命令” inputfile…
例:sed -n ‘2d’ /etc/issue
d:删除模式空间中匹配到的行
例:sed ‘/^UUID/d’ /etc/fstab
p:显示模式空间中的内容(不配合-n选项,默认会显示两遍)
例:sed -n ‘/^UUID/p’ /etc/fstab
a \text:在匹配到的行后面添加文本;
例:sed ‘/^UUID/a Test line’ /etc/fstab
例:sed ‘/^UUID/a Test line \nsecond line’ /etc/fstab(配合\n可实现多行追加)
i \text:在匹配到的行前面添加文本;支持使用\n实现多行插入
例:sed ‘/^UUID/i Test line’ /etc/fstab
c \text:替换匹配的行为单行或多行文本
例:sed ‘^/UUID/c uuid’ /etc/fstab
w /PATH/TO/FILE:保存模式空间中的内容至指定文件中
例:sed ‘^/UUID/w /tmp/fstab.txt’ /etc/fstab
r /PATH/FORM/FILE: 读取指定文件的内容至模式空间中所匹配到的行后面
例:sed ‘7r /etc/passwd’ /etc/fstab
=:为模式空间中的行打印行号
例:sed ‘/^\//=’ /etc/fstab
!:对地址定界取反
例:sed ‘/^UUID/!d’ /etc/fstab
同时也支持后向引用
例:sed -n ‘s#r..t#&er#p’ /etc/passwd
sed -n ‘n;p’ FILE:显示偶数行
sed ‘n;d’ FILE:显示奇数行
sed ‘1!G;h;$!d’ FILE:逆序显示文件内容
sed -n ‘1!G;h;$p’ FILE:逆序显示文件内容(和上面的命令是同样的结果)
sed ‘$!N;$!D’ FILE:取文件最后两行
sed ‘$!d’ FILE:取出最后一行
sed ‘G’ FILE:在行后面增加空白行
sed ‘/^$/d;G’ FILE : 把多个空白行合并为一个空白行,并在每一行追加一个空白行
原创文章,作者:人字拖,如若转载,请注明出处:http://www.178linux.com/71180
评论列表(1条)
尽量不要复制粘贴笔记