Sed的高级命令

1  -{}多个sed命令,用;分开比如  nl  文件名  |  sed  ’{你要从第几行删除,到删除到第几行d;s/替换前的内容/替换后的内容/}’

2  -n读取下一个输入行,用下一个命令进行处理  nl  文件名 |  sed  -n  ’{np}’   打印文件中所有偶数的行

3  -&替换固定的字符串  sed  ’ s/原来的字符串/&后来的字符串/’  后面修改的字符串一定要跟原来的字符串有关系才能使用&,如s/w/w123/修改成s/w/&123/

4案例一:大小写转换,将用户名的首字母转换成大写

Sed  ’s/^[a-z_-]\+/\u&/’  文件名

5案例二:大小写转换,将文件夹下的.txt文件名转换成大写字母

Ls *.txt  |  sed  ’s/^\w\+/\U&/’

6案例三:数据筛选,获取文件中的USER、UID和GID

USER   sed  ’s/\(^[a-z_-]\+\):.*$/\1/’  文件名

USERUID   sed  ’s/\(^[a-z_-]\+\):x:\([0-9]\+\):.*$/\1  \2/’  文件名

USERUIDGID  sed  ’s/\(^[a-z_-]\+\):x:\([0-9]\+\):\[0-9]\+\):.*$/\1  \2  \3/’  文件名

7   -\(\)替换某种或部分字符串

8  -r复制指定文件插入到匹配行  插入操作   sed  ’匹配行要读的文件要插入的文件   意思是把读取的文件插入到另一个文件,插入时插入匹配行后面,并且不会改原文件

9  -w复制匹配行拷贝到指定文件里  改写操作   sed  ’匹配行写到的文件’  要写入的文件也就是原文件名   只拷贝了匹配行到写到的文件中,而原文件没有改变,如果没有写匹配行,那么就会把整个原文件拷贝到要写到的文件中

10  q退出   sed  nl  文件名 |  sed  ’操作q’  意思是执行到这个操作后就马上退出sed






来源:春哥技术博客,欢迎分享,转载请注明出处。(欢迎加春哥团队客服微信号:taike668)

本文地址:https://www.cgtblog.com/wljs/1966.html
上一篇:Linux find命令详解      下一篇:实现HTTPS系列第四弹之【TLS ,SSL等概