🗒️grep、sed、awk
2025-11-7
| 2025-11-7
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
 
工具
核心用途
类比
grep
查找过滤
"查"
sed
替换编辑
"改"
awk
分析统计
"算"

grep —— 文本搜索利器

在文本中查找符合某种模式(正则表达式)的行。
 

sed —— 流编辑器(Stream Editor)

对文本逐行编辑与替换。
常见编辑命令
命令
含义
示例
s
替换(substitute)
s/foo/bar/g
d
删除行
/^#/d
p
打印行
/error/p
a
在匹配行后追加
/pattern/a\追加的内容
i
在匹配行前插入
/pattern/i\插入的内容
c
替换整行内容
/pattern/c\新的一行内容
y
字符翻译(类似 tr
y/abc/xyz/
q
提前退出
5q    # 读到第5行后停止
=
打印当前行号
/ERROR/=
n
读取下一行并跳过当前行
n; /foo/d
r file
在匹配行后读入外部文件内容
/end/r footer.txt
w file
把匹配行写入文件
/ERROR/w errors.txt
!
取反,反选行执行
/foo/!d

awk —— 报表与结构化文本处理工具

awk 是一种处理文本文件的语言,一个强大的文本分析工具,逐行读取文本,默认空格或者tab作为分隔符进行分割,对文本行按字段进行分析、计算、格式化输出awk options 'pattern {action}' file
 
  • options 选项,控制awk的行为
    • -F, 指定输入字段的分隔符,默认是空格。使用这个选项可以指定不同于默认分隔符的字段分隔符。
      • awk -F',' '{print $1, $2}' file
  • ‘pattern {action}’
    • pattern 匹配输入数据的模式,省略后默认awk会对所有行进行操作
    • {action} 在匹配到的行上执行的动作,省略后默认动作是打印整行
    • pattern的几种形式
      类型
      示例
      含义
      正则表达式
      /error/ {print $0}
      匹配包含 “error” 的行
      表达式(逻辑判断)
      $3 > 1000 {print $1,$3}
      匹配数值条件
      取反(NOT)
      ! /warn/ {print $0}
      过滤不包含 “warn” 的行
      范围判断
      /begin/,/end/ {print $0}
      匹配从 “begin” 到 “end” 的所有行
      行号匹配
      NR==1 {print $0}
      匹配第1行
      组合逻辑
      /error/ && $3 > 100 {print $1}
      同时满足两个条件
      假设有一个日志文件
      元素
      内容
      说明
      options
      -F' '
      设置字段分隔符为空格
      pattern
      /404|500/
      匹配含有 404 或 500 的行(正则表达式)
      action
      {print NR, $1, $9}
      打印行号、IP(第1列)和状态码(第9列)
      file
      access.log
      输入文件
 
雷电接口、Type-C、USB-C接口英语学习方法
Loading...
目录