sed是stream editor 流编辑器的缩写,是文本处理很重要的一个工具,它完美的能够配合正则表达式去使用。下面介绍sed经常使用的技术。正则表达式
sed的动做下面几个用法less
a: 新增,a后面能够跟字符串,字符串会在目前的下一行出现编辑器
例子: nl /etc/passwd | sed '2a i love it' | less
ide
nl是将文件的行号打开,这样就在文件的第二行的下一行加入了“i love it”这个字符串,而且我less分行显示出来。
工具
d: 删除
this
例子: nl /etc/passwd | sed '2,6d' | less
字符串
将文件的第2到第6行的内容删除而且分行显示。
string
i:插入,后面能够跟字符串,字符串会在目前的上一行出现it
例子: nl /etc/passwd | sed '2i i love it' | less
class
nl是将文件的行号打开,这样就在文件的第二行的上一行加入了“i love it”这个字符串,而且我less分行显示出来。
p: 打印,一般带上-n的参数,意思是只显示发生变化的行显示。
例子:nl /etc/passwd | sed -n '2,7p'
将文件第2到7行打印出来
c:替换,c后接字符串,直接替换选中行的所有内容
例子:nl /etc/passwd | sed '2,5c i want replace this' | less
将文件的第2到5行的内容换成“i want replace this”这个字符串。
s:替换,最经常使用的参数,能够搭配正则表达式
1.替代给定文本中的字符串,只将每一行中的第一处符合样式的内容替换掉。
例子: 我有一个文件叫file,内容以下:
wwwmmmmm
qwwwmmmmm
qqwwwmmmmm
如今我想把每一行的第一个w换成b
sed 's/w/b/' file | less
这样就可达到目地,只将每一行的第一个w换成b,而不是所有替换
2.替代给定文本中的字符串,全文替代。
例子:仍是上面的file,如今须要把全部的w换成b
sed 's/w/b/g' file | less
就是在上面的基础加上一个g就能够达到目地
扩展 : sed 's/pattern/replace_string/Ng' file
N的意思是从N处开始替换,例如sed 's/w/b/3g' aa 意思是我从每一行的第三个字符开始替换,忽略前面的字符。
3.移除空白行,使用正则表达式
sed '/^$/d' file
sed -i 得意思是直接修改文件内容,前面的也能够带上-i 的参数,就是直接去修改文件自己的内容了。而不是由屏幕输出。