文章目录

  • 1 正则表达式
    • 1.1 基础正则
    • 1.2 扩展正则(了解即可)
  • 2 cut截取文本
  • 3 awk编程
    • 3.1 printf格式化输出
    • 3.2 awk基本使用
  • 4 sed命令
  • 5 字符串的排序、去重和统计
    • 5.1 排序sort
    • 5.2 去重uniq
    • 5.3 统计wc
  • 参考资料

1 正则表达式

  • shell中的正则表达式与通配符的区别:正则表达式是用来匹配字符串的,通配符是用来匹配文件名的。

1.1 基础正则

  • 通过grep搭配使用。注意,如果grep加了-E选项,则在\{n\}中不需要加上\转义符。

1.2 扩展正则(了解即可)

  • 在shell中使用扩展正则,必须使用egrep命令或grep -E选项。

2 cut截取文本

  • cut命令的默认分隔符是制表符
  • 对比grep命令。grep是提取特定的,cut是提取特定的
  • 一些案例

  • cut命令的局限性:用空格键作为分隔符时,经常会满足不了需求。因为不同行的空格数量是不一致的。

3 awk编程

  • awk的基本作用也是截取

3.1 printf格式化输出

  • printf后面跟的是单引号

  • printf基本不单独使用,都是与awk结合使用。

  • 在printf的单引号中,只能识别格式输出符号,如\n, \t等,手动输入的空格是无效的。

3.2 awk基本使用

  • 在awk中,printf的格式输出符号使用双引号

  • awk除了printf,还支持print。两者的区别是:print输出每一行后会有个换行,而printf没有;print在shell终端中无法执行,而printf可以。

  • 一些只用到格式化输出的案例。$0是整行数据,$1是第一列,$2是第二列,以此类推。

  • awk的条件





  • awk中的正则表达式,在//两个斜杠之中使用。

  • awk的内置变量。常用:NFNRFS。这些变量不能写在双引号中。


  • 注意,字符串也要写在""双引号中。如下例所示的中文字符串,都放在了双引号中。

4 sed命令

  • sed是用来将字符串进行选取、替换、删除、新增的命令

  • 打印特定行

  • 删除特定行的显示,此时不要加-n选项


  • 加上-e选项,允许执行多条sed命令,使用;分隔开。

  • 字符串替换操作。


5 字符串的排序、去重和统计

5.1 排序sort

  • 一些案例

5.2 去重uniq

5.3 统计wc

参考资料

【1】尚硅谷Linux系统管理教程(linux系统管理精讲)
【2】https://www.yuque/mo_ming/gl7b70/ponqh7

更多推荐

【Shell】正则表达式与字符串处理