替换字符串
在 sed 中, ?
不生效
sed -ie 's/abc/def/' /tmp/tet.txt # 只替换一次
多个文件中同时替换
sed -i "s/abc/def/g" `grep abc -rl /tmp` # 把/tmp下所有文件中的abc换成def
插入字符串
- 在关键字前面插入
sed -ie "s/abc/def&/" /tmp/tet.txt
- 在关键字后面插入
sed -ie "s/abc/&def/" /tmp/tet.txt
- 在关键字下一行插入
sed -ie "3a\def" /tmp/tet.txt
- 在关键字上一行插入
sed -ie "3i\def" /tmp/tet.txt
- 在所有关键字的下一行插入
sed -ie "/abc/a\\def" /tmp/tet.txt
- 在所有关键字的上一行插入
sed -ie "/abc/i\\def" /tmp/tet.txt
检查字符串是否在文件中
cat /tmp/tet.txt | grep -ie "abc"|grep -v grep | wc -l # 大于 0 说明在文件中
删除字符串所在行
sed -ie "/abc/d" /tmp/tet.txt
删除指定行号
sed -i '3d' /tmp/tet.txt
删除多行指定行号
sed -i '1,3d' /tmp/tet.txt
查找字符所在行号
cat -n /tmp/tet.txt |grep -ie 'abc' |awk '{print $1}'|sed -n "1"p
sed -n '/abc/=' /tmp/tet.txt |sed -n \"1\"p"