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

posted @ 2017-12-02 11:23  左丿仔  阅读(1090)  评论(0编辑  收藏  举报