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}' file.txt$ awk '/o/ {print}' file.txt$ awk '/e/ {print}' file.txt$ awk '/a/ {print "\t" }' 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命令验证结果,如下所示
##代码##