单引号为绝对引用,双引号中可以用变量:
sed 's/aaa/bbb/' /etc/passwd
i=bbb
sed "s/aaa/$i" /etc/passwd
多条指令:
sed 's/aaa/bbb/;s/mmm/nnn/' /etc/passwd 或者
sed -e 's/aaa/bbb/' -e 's/mmm/nnn/' /etc/passwd
sed 's/lo/xo/2' <<<"hello hello" 匹配第二次出现的lo
sed不能匹配换行符
sed 's/^ *$//' 匹配空行,或有空格
sed 'N;s/\n//' sed '/^$/d' /etc/passwd 删除空行
sed 's/A-Z/(&)/' <<
sed -r 's/(.*):(.*):(.*)/\3-\2-\1/' 实现以:分割的,列出第三列、第二列、第一列
sed '1,3d' /etc/passwd 删除1到3行
sed '/root/d' /etc/passwd 有root就删掉整行
sed -r '1,5{s/a/b/;s/c/d/}' 在相同范围内作很多动作
sed 'y/abcdefg/ABCDEFG/' <<
sed '/root/a ##########################' /etc/passwd 遇到root就在该行后追加##########
sed '/root/i ##########################' /etc/passwd 遇到root就在该行前追加##########
sed 'N;s/\n/\t/' /edd 两行合成一行
sed '1,5{H;d};10G' /etc/passwd 把1到5行剪切到10行后,h覆盖保持空间,H追加
sed '1,5H;10G' /etc/passwd 把1到5行复制到10行后,g覆盖原有行,G在原有行后追加
------------------------------------------------