Linux三剑客与正则

正则表达式:注意三剑客才能读懂。

grep:
文本过滤工具(模式:pattern)
语法:grep [OPTIONS] PATTERN [file]
参数选项:

  • --color=auto 对匹配到的文本进行着色显示

  • -v 显示不被PATTERN匹配到的行

  • -i 忽略字符大大小写

  • -n 显示匹配的行号

  • -c 统计匹配的行数

  • -o 仅显示匹配到的字符串

  • -q 静默模式,不输出任何信息

  • -A #after,后#行

  • -B #before,前#行

  • -C context,前后各#行

  • -e 实现多个选项间的逻辑or关系(gerp -e ‘cat’ -e ‘dog’ file)

  • -w 匹配整个单词

  • -E 使用ERE,相当于egrep

  • -F 相当于fgrep,不支持正则表达式

sed:
流编辑器,一次处理一行内容,把当前处理的行放入模式空间,然后用sed命令进行处理,处理完成后把模式空间内容送往屏幕,然后执行下以循环。
语法: sed [option]… ‘script’ inputfile
1.参数选项:

  • -n 不输出模式空间内容到屏幕

  • -e 对点编辑

  • -f 从指定文件中读取编辑脚本

  • -r 支持使用扩展正则表达式

  • -i 直接编辑文件(改变原文件内容)

  • -i.bak 备份文件并原处编辑
    2.script 地址范围

  • 不给地址:对全文进行处理

  • 单地址:# 指定的行 $ 最后一行

  • 范围地址:#,#

  • ~:步进(1~2 奇数行,2~2 偶数行)

3.编辑命令:

  • d 删除模式空间匹配的行,并立即启用下一轮循环
  • p 打印当前模式空间内容,追加到默认输出之后
  • a [\]text1 在指定行后面追加文本,支持使用\n实现多行追加
  • i [\]text 在行前面插入文本
  • c [\]text 替换行为单行或多行文本
  • w /path/somefile 保存模式匹配的行至指定文件
  • r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后
  • = 为模式空间中的行打印行号
  • ! 模式空间中匹配行取反处理
  • s///:查找替换,支持使用其它分隔符,s@@@,s###
    • g 行内全局替换
    • p 显示替换成功的行
    • *w /PATH/TO/SOMEFILE 将替换成功的行保存至文件中

awk:
将输出的文本格式化
语法: awk [options] ‘program’ file…

  1. program:pattern{action statements;…}
  • pattern部分决定动作语句何时触发及触发事件
    BEGIN,END

  • ction statements对数据进行处理,放在{}内指明
    print, printf

2.选项参数:

  • -F 指明输入时用到的字段分隔符
  • -v var=value 自定义变量
3 个赞