Linux/Unix 中的 AWK 命令

AWK适合于模式搜索和处理。该脚本运行以搜索一个或多个文件以识别匹配的模式,并且如果所述模式执行特定任务。在本指南中,我们来看看AWK Linux命令,看看它能做些什么。

AWK可以做哪些操作?

  • 逐行扫描文件
  • 将每一个输入行拆分为多个字段
  • 将输入行和字段与模式进行比较
  • 对匹配线执行指定操作

AWK命令有用性

  • 更改数据文件
  • 生成格式化报告

awk命令的编程概念

  • 设置输出行的格式
  • 条件AND循环
  • 算术和字符串操作

AWK语法

1$ awk options 'selection _criteria {action }' input-file > output-file

为了更多地演示awk的用法,我们将使用名为file.txt awk命令示例file第1列=>Item,第2列=>Model 3 Column=>Country 4 Column=>Cost

AWK命令示例

打印特定栏目

要打印第2列和第3列,请执行以下命令。

1$ awk '{print $2 "\t" $3}' file.txt

输出 Awk打印第二列和第三列

打印文件中的所有行

如果希望列出文件中的所有行和列,请执行

1$ awk ' {print $0}' file.txt

输出 awk打印所有Lines

打印与特定图案匹配的所有行

如果要打印与特定模式匹配的行,则语法如下所示

1$ awk '/variable_to_be_matched/ {print $0}' file.txt

例如,要将所有条目与字母‘o’匹配,语法将为

1$ awk '/o/ {print $0}' file.txt

输出 匹配所有lines的AWK Linux命令以匹配字母‘e’的所有条目

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

输出 AWK与E匹配行

打印与特定图案匹配的列

当AWK找到模式匹配时,该命令将执行整个记录。您可以通过发出仅显示某些字段的指令来更改默认设置。例如:

1$ awk '/a/ {print $3 "\t" $4}' file.txt

上面的命令打印字母‘a’出现在OUTPUT AWK Match Column]这两列中的第3和第4列

统计打印匹配图案

您可以使用AWK计数并打印每个模式匹配的行数。例如,下面的命令计算匹配模式出现的实例数

1$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt

输出 计数与pattern匹配的列

打印多行或少行字符数

AWK有一个内置的长度函数,可以返回字符串的长度。命令$0变量存储整行内容,如果没有正文块,则执行默认操作,即打印操作。因此,在我们的文本文件中,如果一行超过18个字符,则比较结果为TRUE,并打印该行,如下所示。

1$ awk 'length($0) > 20' file.txt

输出 打印带有或多或少Characters的行

将AWK的输出保存到其他文件

如果您希望保存结果的输出,请使用>重定向操作符。例如

1$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt

您可以使用cat命令验证结果,如下所示

1$ cat output.txt

输出 AWK重定向输出

总结

AWK是另一个简单的编程脚本,可用于操作文档中的文本或执行特定功能。共享的命令是一些或许多您还不知道或遇到的命令。

Published At
Categories with 技术
Tagged with
comments powered by Disqus