简介
有时候需要在 Linux 处理数据,Linux 上有三种命令行工具:
awk
:一种强大的文本处理工具,常用于模式匹配和数据提取。sed
:流编辑器,用于对文本进行基本的编辑和转换,适合批量处理文件内容。grep
:用于搜索文本文件中匹配特定模式的行,支持正则表达式。
这三者结合可以很方便的处理和分析数据,是 Linux 系统管理员和开发者的重要工具。
人称 shell 三剑客
grep
这是一个命令行搜索工具,可以在文件或输入流中搜索特定模式的行
结合管道命令将执行的结果传递给后面,对于完成一些复杂的操作很友好
语法:
|
|
常见选项
- -i:忽略大小写
- -v:反向匹配,只显示不匹配的内容
sed
sed 是一个文本处理工具,用于在命令行中对文件中的文本进行修改。它的输入可以是文件,也可以从管道读取数据
语法:
|
|
常见选项
- -i:直接修改文件内容
- -n:静默输出,不输出文件中的内容
常见命令
s/pattern/replacement/flag
:这是最常用的命令,用于将匹配的 pattern 替换为 replacement
案例
将文件中所有 “apple” 替换为 “orange”
|
|
awk
awk 是一种文本处理工具,主要用于从文本文件中提取数据并进行格式化输出。 它是一种编程语言,允许你编写脚本来处理文本数据。 awk
逐行读取输入文件,将每一行分割成字段,然后根据你定义的规则对这些字段进行处理。
语法:
|
|
常见选项:
- -F:指定字段分隔符,默认是空格或制表符
|
|
- -v:定义变量
|
|
内置变量:
- $0:整行文本
- $1,$2,…:第一个字段,第二字段
- NF:当前行的字段数
- NR:当前行的行号
模式:
- 正则表达式:
|
|
- 关系表达式:
|
|