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选项