设为首页 收藏本站
查看: 882|回复: 0

shell 文本处理的几个命名sed,awk,sort,uniq,cut

[复制链接]

尚未签到

发表于 2018-8-26 13:54:53 | 显示全部楼层 |阅读模式
文本处理
Cat命令
  1)  拼接文件:纵向拼接,不是横向拼接
  root@docker-host-03:~# cat list list2
  line2
  line3
  line4
  line5
  line5
  line6
  line7
  total 32K
  lrwxrwxrwx 1 root root   12 Jan  4 11:30 backup -> /data/backup
  -rw-r--r-- 1 root root   46 Apr  1 13:18 list
  -rw-r--r-- 1 root root    0 Apr  1 13:29 list2
  -rwxr-xr-x 1 root root   84 Apr  1 09:24 test.sh
  drwxr-xr-x 4 root root 4.0K Apr  1 13:16test_shell
  drwxr-xr-x 2 root root 4.0K Mar 28 09:42 tmp
  drwxr-xr-x 6 root root 4.0K Jul 19  2016tools
  root@docker-host-03:~# ls -lh | cat - list    #这里的-标示标准输入
  total 36K
  lrwxrwxrwx 1 root root   12 Jan  4 11:30 backup -> /data/backup
  -rw-r--r-- 1 root root   46 Apr  1 13:18 list
  -rw-r--r-- 1 root root  512 Apr  1 13:29 list2
  drwxr-xr-x 10 root root 4.0K Mar 23  2016 root
  -r-------- 1 root root 1.7K Mar 31 10:06 solar
  drwxr-xr-x 3 root root 4.0K Dec  1 10:07testgit
  -rwxr-xr-x 1 root root   84 Apr  1 09:24 test.sh
  drwxr-xr-x 4 root root 4.0K Apr  1 13:16test_shell
  drwxr-xr-x 2 root root 4.0K Mar 28 09:42 tmp
  drwxr-xr-x 6 root root 4.0K Jul 19  2016tools
  line2
  line3
  line4
  line5
  line5
  line6
  2)  格式化输出
  输出行号
  root@docker-host-03:~# cat -n list
  1  line2
  2  line3
  3  line4
  4  line5
  5  line5
  6  line6
  压缩空格行
  root@docker-host-03:~# cat -s list
  line2
  line3
  line4
  line5
  line5
  line6
  line7
paste
  按列合并文件:纵向拼接
  root@docker-host-03:~# paste employe.txt bonus.txt | awk '{print $1,$2,$3,$5}' | tr '[A-Z]' '[a-z]' |s
  ort -s -k2
  400 ashok sharma $1,250
  100 jason smith $5,000
  200 john doe $500
  300 sanjay gupta $3,000
  root@docker-host-03:~# cat employe.txt
  100 Jason Smith
  200 John Doe
  300 Sanjay Gupta
  400 Ashok Sharma
  root@docker-host-03:~# cat b
  cat: b: No such file or directory
  root@docker-host-03:~# cat bonus.txt
  100 $5,000
  200 $500
  300 $3,000
  400 $1,250
cut
  以列形式处理文本行
  -d  以什么作为分隔符来分割列
  -f  指定要显示哪几个列
排序、去重
  Sort
  -n 按照数字序列排序
  -r 倒序排序
  -k 指定以某列
  -d 以字典序列排序
  tac
  会以逆序的方式打印输出
  root@docker-host-03:~# cat list
  line2 200
  line3 100
  line4 100
  line5 700
  line5 800
  line6 50
  line7 350
  root@docker-host-03:~# cat list | tac -
  line7 350
  line6 50
  line5 800
  line5 700
  line4 100
  line3 100
  line2 200
  Uniq
  Uniq会去除重复的行,但仅限于是已经拍过序的输入,或者是已经排过序的文件。
  -u  只显示那些是唯一的行
  -c  统计重复行出现的次数
  -d  找出重复行的内容
tr命令
  tr是一个构建一行命令的一个小而美的工具。tr只能接收标准输入作为命令参数。tr可以进行文件的转换、删除、压缩
  替换
  root@docker-host-03:~# echo "123 abcdefg:aaa:" | tr ":" "

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-556905-1-1.html 上篇帖子: shell学习之自动备份mysql数据库 下篇帖子: shell语法练习之实现简单计算器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表