\(..\)匹配子串,保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。
替换文本中的字符串:
sed 's/book/books/' file
直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books:
sed -i's/book/books/g’ file
使用后缀 /g 标记会替换每一行中的所有匹配:
sed 's/book/books/g’ file
当需要从第N处匹配开始替换时,可以使用 /Ng:
echo sksksksksksk | sed 's/sk/SK/2g'
skSKSKSKSKSK
echo sksksksksksk | sed 's/sk/SK/3g'
skskSKSKSKSK
echo sksksksksksk | sed 's/sk/SK/4g'
skskskSKSKSK
定界符出现在样式内部时,需要进行转义:
sed 's/\/bin/\/usr\/local\/bin/g’
删除空白行:
sed '/^$/d’ file
删除文件的第2行:
sed '2d’ file
删除文件的第2行到末尾所有行:
sed '2,$d’ file
删除文件最后一行:
sed '$d’ file
删除文件中所有开头是test的行:
sed '/^test/'dfile
love被标记为1,所有loveable会被替换成lovers,并打印出来:
sed -n 's/\(love\)able/\1rs/p’ file
打印从第5行开始到第一个包含以test开始的行之间的所有行:
sed -n '5,/^test/p’ file
将 this is a test line 追加到 以test 开头的行后面:
sed '/^test/a\this is a test line’ file
将 this is a test line 追加到以test开头的行前面:
sed '/^test/i\this is a test line’ file
在 test.conf 文件第2行之后插入 this is a test line:
sed -i '2a\this is a test line’ test.conf
互换模式空间和保持缓冲区的内容。也就是把包含test与check的行互换:
sed -e '/test/h' -e '/check/x’ file
-e选项允许在同一行里执行多条命令:
sed-e'1,5d'-e's/test/check/‘ file
上面sed表达式的第一条命令删除1至5行,第二条命令用check替换test。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。









网友评论