sed入门

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 的参数,就是直接去修改文件自己的内容了。而不是由屏幕输出。

相关文章
相关标签/搜索