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