简单示例
test文件原始内容如下
1 | hello world |
删除第一行
1 | sed '1d' test |
删除最后一行
1 | sed '$d' test |
把hello字符串替换为HELLO
1 | sed 's/hello/HELLO/' test |
把hello字符串替换为HELLO并直接变更源文件
1 | sed -i 's/hello/HELLO/' test |
把hello字符串替换为HELLO并直接变更源文件,同时生成test_bak备份文件
1 | sed -i_bak 's/hello/HELLO/' test |
把第2次匹配的l替换为L,注意:行匹配
,可尝试再插入一行hello world看下效果
1 | sed 's/l/L/2' test |
把h和w字符分别替换为H和W
1 | sed 'y/hw/HW/' test |
打印奇数行
1 | sed -n '1~2p' test |
打印偶数行
1 | sed -n '2~2p' test |
第二行至最后一行替换为333;即删除第二到最后一行,然后插入新的一行333
1 | sed '2,$c 333' test |
每行下面加一空行
1 | sed G test |
在第4行行尾插入变量a的值
1 | sed "4{s/$/$a/}" test.txt |
将当前目录中所有以md结尾的文件中的首次出现description的行删掉
1 | find . -name *.md | xargs sed -i '0,/description/{/description/d}'` |
打印除了2-4行
1 | seq 6 | sed -n '2,4!p' |