sed的用法

        sed是一种流编辑器,它是一种文本处理中非常重要的工具,能够配合正则表达式使用。处理时,把当前的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成之后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,知道文件末尾,文件内容你没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;减缓对文件的反复操作;编写转换程序等。

sed用法实例


替换操作:s命令:将文件中每一行的第一个字串qiang替换为yuan,但没有将替换的内容写到文件中去。缓冲区的文本已经替换。

 

-i : 代表将当前替换的字串写入到文本中

 

 

g : 表示文件中每一行的所有匹配字串替换 

当需要从第N处匹配开始替换是,可以使用/Ng: ( N:代表从第几个匹配字串开始替换)

 

d:删除空白行

删除文件的第2行:

删除文件的第3行到末尾的所有行:

 

删除文件的最后一行:

 

 删除文件中所有开头是test的行:

 

所有以test开头的行都会被替换为它自己加1234:

 

子串匹配标记 \1 :

命令中digit 7,被替换成了7.样式匹配到的子串是7,\(..\)用于匹配子串,对于匹配到的第1个子串就标记为\1,以此内推

 批量的递归的替换字串,如下例:

将所有文件中含“yuan”的字串改为"qiang"

格式为:sed -i "s/OldString/NewString/g"  `grep "string"  . -n -rl`

 删除文件中的空格

 

sed -i 's/\ //g' filename

 

删除文件中的换行符

cat filename|tr -d ['\n'] > .tmp
cp .tmp filename
rm  .tmp

  

  

 

posted @ 2017-12-18 17:58  轻轻的吻  阅读(357)  评论(0编辑  收藏  举报