linux 之sed

sed 用法

sed [-nefr] [action]

-i 直接修改文件内容,而不是像其他命令那样只是输出到终端

a新增c取代d删除i插入p列印常与sed -n 使用s取代

有一点需要注意的是:如果需要转义的话,需要加入 另外字符串不需要额外加双引号,否则会把双引号也识别为字符串的内容

nl  ——类似cat,只是在前面多打印行号

nl /etc/passwd |sed '2,5d'删除2至5行后显示在终端,‘2d’,'3,$d'类推

nl /etc/passwd |sed '2a drink tea'在第二行后面添加drink tea,其它命令类推

nl /etc/passwd | sed -n '5,7p'显示第5至第7行

nl /etc/passwd | sed -n  '/root/p'搜索关键字root的行,把p改为d,则为删除该行

nl /etc/passwd | sed -n '/root/{$/bash/blueshell/;p}' 找到root所在的行后,把bash修改为blueshell,花括号里面的是一组命令

nl /etc/passwd |sed -e '3,$d' -e 's/bash/blueshell/' ( -e多点编辑)第一个是删除第三行到末尾,后面的是修改bash为blueshell

匹配某行的部分内容后,替换掉改行

sed -i 's/^da.*$/aaaaa/g' a       #替换a文件中所有以da开头的行,该行内容会变成aaaaa,没有生效是因为我没有使用-i选项

原文地址:https://www.cnblogs.com/biaopei/p/7730680.html