sed命令使用简单记录

sed 's/pattern/replace_string/'  file

sed.txt中对每行的第一个lifeng用lf替换   sed 's/lifeng/lf/' sed.txt  (源文件内容不会变的)

要替换所有内容,命令尾部加参数g       sed 's/lifeng/lf/g' sed.txt

要从每行的第二处内容进行匹配 使用2g   sed 's/lifeng/lf/2g' sed.txt

也可以这样使用    cat sed.txt | sed 's/lifeng/lf/'  >file (输出重定向)

要是想直接修改原文件 加参数 –i   sed –i  's/lifeng/lf/' sed.txt

sed –i .bak 's/lifeng/lf/' sed.txt 在源文件进行替换同时会创建一个file.bak的备份文件

 

sed移除空白行   sed '/^$/d' sed.txt   

空白行可用正则^$来表示     /pattern/d会移除匹配样式的行

 

已匹配字符串标记:&  表示已匹配的内容

[root@etl001 csv]# echo this is an example|sed 's/\w\+/[&]/g'

[this] [is] [an] [example]

[root@etl001 csv]# echo this is an example|sed 's/\w\+/[&]/'

[this] is an example

正则\w\+匹配每一个单词 然后我们用[&]替换它  &对应之前匹配到的单词

 

引号

sed表达式一般用单引号来引用,不过也可以使用双引号,双引号会通过对表达式求值来对其进行扩展,当我们想在sed表达式中使用一些变量时,双引号就能派上用场了。

例如:text=HELLO

      echo hello word|sed "s/$text/HELLO/"  (单引号不行)

      HELLO word

这个是删除第一行到第n行

sed -i '1,nd' filename

posted @ 2016-06-17 17:55  日月玉朱猪  阅读(376)  评论(0编辑  收藏  举报