📅  最后修改于: 2023-12-03 15:29:32.669000             🧑  作者: Mango
AWK 是一种数据处理工具,它将一行文本分解为一系列字段,以便对每个字段进行不同的操作。 AWK 的名称来自于它的创建者:Alfred Aho、Peter Weinberger 和 Brian Kernighan。
AWK 可以轻松处理文本文件、生产报告、操作数据库等等。 AWK 可以理解为是一种小型程序设计语言,用于自动化处理文本数据。
AWK 命令可以从脚本、命令行或 STDIN 接受输入。它将输入数据分解为字段,并扫描一次或多次行来进行处理,具体取决于指定的命令。
AWK 命令的基本语法如下所示:
$ awk 'BEGIN{actions} {actions} END{actions}' file
其中 BEGIN{actions}
和 END{actions}
是可选块,分别在处理开始和结束时执行。
以下是 AWK 常用命令的示例:
- `print`: 打印输入数据、变量和常量<br />
`awk '{print $1,$2,$6}' file.txt`<br /><br />
- `nawk`: 以完整的正则表达式处理方式工作<br />
`nawk '/regex/' file.txt`<br /><br />
- `grep`: 使用 grep 命令查找特定文本<br />
`awk '/pattern/ {print}' file.txt`<br /><br />
- `sed`: 使用 Awk 命令解析文件并使用 sed 来查找和替换文本<br />
`awk '{print $1}' file.txt | sed 's/string-1/string-2'`<br /><br />
- `sort`: 按列或字段排序输入数据<br />
`awk '{print $1,$2,$3}' file.txt | sort -k 2`<br /><br />
- `uniq`: 去重输入数据<br />
`awk '{print $1}' file.txt | uniq`<br /><br />
- `wc`: 计算行、单词和字符数<br />
`awk '{print $1}' file.txt | wc`<br /><br />
以下是 AWK 中常见问题的示例:
如果您正在处理大型文件需要占用大量的内存,可以使用split
命令将文件拆分为小文件,然后使用 AWK 命令逐个处理它们。示例:
$ split -l 10000 input_file.txt
$ awk '{actions}' *.txt
通过指定-F
参数,可以更改 AWK 的字段分隔符。示例:
awk -F: '{print $1,$2}' /etc/passwd
可以使用 AWK 来执行必要的循环处理。例如,在以下示例中,AWK 命令从 1 到 10 循环:
awk 'BEGIN{for(i=1;i<=10;i++)print i}'
AWK 命令是一个简单但强大的工具,可用于处理文本数据。它可以轻松地处理大型文件,并且包括许多常用的示例。通过改变字段分隔符和指定操作,可以实现各种任务。