sed 简单用法
sed的一个简单用法:
eg:在某一个文件中的一个aaa字段前后添加某些字段。
在aaa前面添加字段:sed -ne 's/aaa/&HELLO/p' test
输出结果:aaaHELLO
在aaa后面添加字段:sed -ne 's/aaa/HELLO&/p' test
输出结果:HELLOaaa
在前后同时添加:sed -ne 's/aaa/&HELLO&/p' test
输出结果:aaaHELLOaaa
后续补充:
1.在某个字段前添加内容:
sed -n 's/apache/&HELLO/p' /etc/passwd
输出结果:apacheHELLO:x:48:48:Apache:/var/www:/sbin/nologin
2.删除文件第一个字符:
sed 's/^.//' /etc/passwd
3.删除文件第二个字符:
sed -r 's/^(.)./\1/' /etc/passwd
或:sed 's/^\(.\)./\1/' /etc/passwd
4.删除文件最后一个字符:
sed 's/.$//' /etc/passwd
5.删除文件每行的倒数第二个字符
sed 's/.\(.\)$/\1/' /etc/passwd
或:sed -r 's/.(.)$/\1/' /etc/passwd
6.删除文件每行的第二个单词
sed -r 's/^([a-Z]+[^a-Z]+)[a-Z]+/\1/' /etc/passwd
7.删除文件每行的倒数第二个单词
sed -r 's/[a-Z]+([^a-Z]+[a-Z]+)$/\1/' /etc/passwd
8.删除一个文件中所有的数字
sed 's/[0-9]//g' test
9.删除每行开头的所有空格
sed 's/^[ ]//g' test
10.用制表符替换文件中出现的所有空格
sed -r 's/[ ]+/\t/g' test
11.把所有大写字母用()括起来
sed -r 's/( [A-Z])/(\1)/g' test
12.隔行删除
sed -n '1~2p' test
13.把文件从第1行到第3行复制到第4行后面
sed -e '1h' -e '2,3H' -e '4G' test