在Linux/Unix中的AWK命令
AWK适用于模式搜索和处理。脚本运行以搜索一个或多个文件以识别匹配的模式,并且如果这些模式执行特定任务。在本指南中,我们将深入了解AWK Linux命令并看看它能做什么。
AWK 能够执行哪些操作?
- Scanning files line by line
- Splitting each input line into fields
- Comparing input lines and fields to patterns
- Performing specified actions on matching lines
AWK命令的实用性
- Changing data files
- Producing formatted reports
awk命令的编程概念
- Format output lines
- Conditional and loops
- Arithmetic and string operations
AWK 的语法
$ awk options 'selection _criteria {action }' input-file > output-file

awk命令示例
打印特定的列
执行以下命令以打印第二和第三列。
$ awk '{print $2 "\t" $3}' file.txt

打印文件中的所有行。
如果您想要列出文件中的所有行和列,请执行该操作。
$ awk ' {print $0}' file.txt

打印出匹配特定模式的所有行
如果你想打印出符合某个模式的行,语法如下所示。
$ awk '/variable_to_be_matched/ {print $0}' file.txt
例如,要匹配所有包含字母’o’的条目,语法将是:
$ awk '/o/ {print $0}' file.txt

$ awk '/e/ {print $0}' file.txt

打印匹配特定模式的列。
当AWK定位到一个匹配的模式时,该命令会执行整个记录。你可以通过发出指令以仅显示特定字段来更改默认设置。例如:
$ awk '/a/ {print $3 "\t" $4}' file.txt

计数和打印匹配的模式
您可以使用AWK来计算和打印每个模式匹配的行数。例如,下面的命令会计算匹配模式出现的实例数。
$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt

打印具有更多或更少字符数量的行
AWK内置了一个length函数,用于返回字符串的长度。从命令$0变量存储了整行内容,在没有代码块的情况下,将采取默认操作,即打印操作。因此,在我们的文本文件中,如果一行超过18个字符,则比较结果为真,然后按如下所示打印出该行。
$ awk 'length($0) > 20' file.txt

将AWK的输出保存到一个不同的文件中
如果您希望保存结果的输出,请使用>重定向操作符。例如
$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt
您可以使用如下所示的cat命令来验证结果。
$ cat output.txt

结论
AWK是另一种简单的编程脚本,你可以用它来处理文档中的文本或执行特定的功能。共享的命令有一些,还有许多你尚未了解或遇到过的。