Linux/Unix中的AWK命令

时间:2020-02-23 14:37:40  来源:igfitidea点击:

AWK适用于模式搜索和处理。
该脚本运行以搜索一个或者多个文件以识别匹配的模式,以及所述模式是否执行特定任务。
在本教程中,我们研究了AWK Linux命令并了解它可以做什么。

AWK可以执行哪些操作?

  • 逐行扫描文件
  • 将每条输入线分成多个字段
  • 比较输入行和字段与模式
  • 在匹配的行上执行指定的操作

AWK命令的实用性

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

awk命令的编程概念

  • 格式化输出行
  • 条件循环
  • 算术和字符串运算

AWK语法

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

为了演示有关AWK用法的更多信息,我们将使用名为file.txt的文本文件。

第一列=>项目,第二列=>型号第三列=>国家第四列=>成本

Awk命令示例

打印特定列

要打印第二列和第三列,请执行以下命令。

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

打印文件中的所有行

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

$ awk ' {print 
$ awk '/variable_to_be_matched/ {print 
$ awk '/o/ {print 
$ awk '/e/ {print 
$ awk '/a/ {print  "\t" }' file.txt
}' file.txt
}' file.txt
}' file.txt
}' file.txt

打印与特定模式行

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

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

例如,要匹配所有带有字母" o"的条目,语法为

$ awk 'length(
$ awk '/a/ {print  "\t" }' file.txt > Output.txt
) > 18' file.txt

匹配所有带字母e的行

$ cat output.txt

打印与特定模式匹配的列

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

例如:

##代码##

上面的命令将打印第三和第四列,其中字母" a"出现在任一列中

计数和打印匹配图案

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

##代码##

打印行数多于或者少于字符数

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

##代码##

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

如果希望保存结果输出,请使用>重定向运算符。
例如

##代码##

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

##代码##