东篱昏后

导航

 

一、简述三剑客的作用

awk擅长取列;

sed擅长取行和替换;

grep擅长查找功能,比如可以根据关键字查询对应的日志。

二、三剑客使用介绍

1.awk

awk是一个处理文本的编程语言工具,能用简短的程序处理标准输入、文件、数据排序、计算以及生成报表等。

①基本的命令语法:awk option 'pattern {action}' file

  其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号用于根据特定的模式对一系列指令进行分组。

-F 指定分割符,默认分隔符是空格

-f  调用脚本

-v  定义变量

BEGIN  初始化代码块,在对每一行进行处理前,初始化代码块。主要是引用全局变量

//  匹配代码块,可以是字符串也可以是代码块

{}  命令代码块,可包含一个或多个命令

;  多个命令使用分号分割

END  结束代码块,在每一行处理之后再执行的代码块

$0  整行输出

$n n表示每行第几列字段输出,如果n大于10需要用{}括起来,如${10}

NF  字段数量

NR  行号

FNR 与NR类似,多文件不递增,都从1开始

\t  制表符

\n 换行符

FS  BEGIN时定义分隔符

RS  输入分隔符

OFS  输出字段分割符,默认是空格

ORS 输出的记录分割符,默认是换行符

②案例

 

 2.sed

①基本命令语法

sed作用是过滤和替换文本。

  sed [选项] '地址 命令' file 

  选项 描述
  -n 不打印模式空间
  -e 执行脚本、表达式来处理
  -f 执行动作从文件读取执行
  -i 修改原文件
  -r 使用扩展正则表达式

  地址 描述
  first~step 步长,每 step 行,从第 first 开始
  $ 匹配最后一行
  /regexp/ 正则表达式匹配行
  number 只匹配指定行
  addr1,addr2 开始匹配 addr1 行开始,直接 addr2 行结束
  addr1,+N 从 addr1 行开始,向后的 N 行
  addr1,~N 从 addr1 行开始,到 N 行结束

  命令 描述
  s/要替换的内容/替换成的内容/ 替换字符串
  p 打印当前模式空间
  P 打印模式空间的第一行
  d 删除模式空间,开始下一个循环
  D 删除模式空间的第一行,开始下一个循环
  = 打印当前行号

②案例

 

 3.grep

①基本命令语法:

 Usage: grep [选项]... 匹配项 [文件]...

  支持的正则 描述 

  -E,--extended-regexp 模式是扩展正则表达式(ERE)

  -e,--regexp=PATTERN 使用模式匹配,可指定多个模式匹

  -f,--file=FILE 从文件每一行获取匹配模式

  -i,--ignore-case 忽略大小写

  -w,--word-regexp 模式匹配整个单词

  -x,--line-regexp 模式匹配整行

  输出控制 描述

  -m,--max-count=NUM 输出匹配的结果 num 数

  -n,--line-number 打印行号

  -H,--with-filename 打印每个匹配的文件名

  -h,--no-filename 不输出文件名

  -o,--only-matching 只打印匹配的内容

  -q,--quiet 不输出正常信息

  -s, --no-messages 不输出错误信息

  -r,--recursive 递归目录

  -c,--count 只打印每个文件匹配的行数

  --include=FILE_PATTERN 只检索匹配的文件

  --exclude=FILE_PATTERN 跳过匹配的文件

  --exclude-from=FILE 跳过匹配的文件,来自文件模式

  --exclude-dir=PATTERN 跳过匹配的目录

  -v,--invert-match 打印不匹配的行 

  内容行控制 描述
  -B,--before-context=NUM 打印匹配的前几行

  -A,--after-context=NUM 打印匹配的后几行

  -C,--context=NUM 打印匹配的前后几行

  --color[=WHEN], 匹配的字体颜色

②案例

 

posted on 2022-04-15 13:13  东篱昏后  阅读(265)  评论(0编辑  收藏  举报