[Linux] grep、sort、uniq、tr、paste

r囧r小猫 2022-12-30 15:51 239阅读 0赞

@grep命令
grep [-ivnc] ‘需要匹配的字符’ 文件名
-i不区分大小写
-c统计包含匹配的行数
-n输出行号
-v反向匹配

  1. [root@xxx ~]# cat test1226
  2. HAHAHAHA
  3. Weekend
  4. weekend
  5. Weekend is coming.
  6. Enjoy your Weekend.
  7. [root@xxx ~]# grep -ci weekend test1226
  8. 4
  9. [root@xxx ~]# grep -ni weekend test1226
  10. 2:Weekend
  11. 3:weekend
  12. 4:Weekend is coming.
  13. 5:Enjoy your Weekend.
  14. [root@xxx ~]#

@使用sort排序
sort [-ntkr] 文件名
-n采取数字排序
-t指定分隔符
-k指定第几列
-r反向排序

  1. [root@xxx ~]# cat test1226_2
  2. a:2
  3. d:1
  4. c:11
  5. b:22
  6. [root@xxx ~]# sort test1226_2
  7. a:2
  8. b:22
  9. c:11
  10. d:1
  11. [root@xxx ~]# cat test1226_2 | sort
  12. a:2
  13. b:22
  14. c:11
  15. d:1
  16. [root@xxx ~]# cat test1226_2 | sort -t ":" -k 2
  17. d:1
  18. c:11
  19. a:2
  20. b:22
  21. [root@xxx ~]# cat test1226_2 | sort -t ":" -k 2 -n
  22. d:1
  23. a:2
  24. c:11
  25. b:22
  26. [root@xxx ~]#

@使用uniq删除重复内容
uniq [-ic]
-i忽略大小写
-c计算重复行数
说明:需要和sort命令一起使用,因为uniq命令只会对比相邻的行

  1. [root@xxx ~]# cat test1226_3
  2. abc
  3. 123
  4. abc
  5. 123
  6. xyz
  7. 123
  8. [root@xxx ~]# uniq test1226_3
  9. abc
  10. 123
  11. abc
  12. 123
  13. xyz
  14. 123
  15. [root@xxx ~]# cat test1226_3 | sort | uniq
  16. 123
  17. abc
  18. xyz
  19. [root@xxx ~]# cat test1226_3 | sort | uniq -c
  20. 3 123
  21. 2 abc
  22. 1 xyz
  23. [root@xxx ~]#

@tr命令做文本转换或删除

  1. [root@xxx ~]# cat test1226_2
  2. a:2
  3. d:1
  4. c:11
  5. b:22
  6. [root@xxx ~]# cat test1226_2 | tr '[a-z]' '[A-Z]'
  7. A:2
  8. D:1
  9. C:11
  10. B:22
  11. [root@xxx ~]# cat test1226_2 | tr -d ':'
  12. a2
  13. d1
  14. c11
  15. b22
  16. [root@xxx ~]# cat test1226_2 | tr -d '1'
  17. a:2
  18. d:
  19. c:
  20. b:22
  21. [root@xxx ~]#

@使用paste做文本合并,默认使用tab分隔

  1. [root@xxx ~]# cat test1226
  2. HAHAHAHA
  3. Weekend
  4. weekend
  5. Weekend is coming.
  6. Enjoy your Weekend.
  7. [root@xxx ~]#
  8. [root@xxx ~]# cat test1226_3
  9. abc
  10. 123
  11. abc
  12. 123
  13. xyz
  14. 123
  15. [root@xxx ~]# paste -d: test1226 test1226_3
  16. HAHAHAHA:abc
  17. Weekend:123
  18. weekend:abc
  19. Weekend is coming.:123
  20. Enjoy your Weekend.:xyz
  21. :123
  22. [root@xxx ~]#

参考书籍:《Linux系统命令及Shell脚本实践指南》王军 著,第5章 字符处理

发表评论

表情:
评论列表 (有 0 条评论,239人围观)

还没有评论,来说两句吧...

相关阅读

    相关 LinuxLinux权限

    权限的概念 > 限制人的,访问的对象天然可能没有这种“属性”权限:一件事情是否允许被谁“做”。 > > 权限 = 人 + 事物属性 `Linux`上的用户分类

    相关 Linux - Linux系统

    一、Linux系统 Linux,全称GNU/Linux。Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发能力已经得到业界的认可,目前大多数企业级应用甚至