Linux中的强大的行处理器工具!awk!

发布时间:2024年01月07日

Linux中的强大的行处理器工具!awk!

AWK(Arithmetic Widely Known)是一种文本处理工具,主要用于在Linux和Unix系统中对文本文件进行模式扫描和处理。它的基本语法是:

awk 'pattern { action }' file

其中,pattern是一个正则表达式,用于匹配文本中的特定模式;action是对匹配到的模式执行的操作;file是要处理的文本文件。

AWK有很多参数和变量命令,以下是一些常用的参数和变量命令

-F:指定输入字段分隔符,默认为空格。
-v:定义一个变量,例如:-v var="value"。
-f:从文件中读取AWK脚本,例如:-f script.awk。
-g:启用全局搜索模式,即在整个文件中查找匹配项,而不仅仅是当前行。
-l:仅输出包含匹配行的行号。
-r:使用扩展正则表达式。
-w:将匹配到的单词作为字段输出。
-W:将匹配到的单词作为字段输出,但不包括标点符号。
-m:限制输出的行数。
-M:限制输出的字节数。

下面是一些代码块案例演示:

使用-F参数指定输入字段分隔符为逗号:

echo "a,b,c" | awk -F, '{print $1}'

输出结果:

a

使用-v参数定义一个变量:

echo "Hello, World!" | awk -v var="World" '{print var}'

输出结果:

World

使用-f参数从文件中读取AWK脚本:
创建一个名为script.awk的文件,内容如下:

BEGIN { print "Hello, AWK!" }

然后运行以下命令:

echo "This is a test." | awk -f script.awk

输出结果:

Hello, AWK!

使用-g参数启用全局搜索模式:

echo "apple orange apple banana" | awk '/apple/ {print $1}' -g

输出结果:

apple apple apple

使用-l参数仅输出包含匹配行的行号:

echo "apple orange apple banana" | awk '/apple/ {print NR}' -l

输出结果:

1
3
5

创建一个文本文件,例如test.txt,内容如下:

Hello, world!
This is a test file.
We are using awk to process this file.

使用扩展正则表达式(-r):

awk -r '{print $1}' test.txt

输出结果:

Hello,
This
We

将匹配到的单词作为字段输出(-w):

awk -w '{print $1}' test.txt

输出结果:

Hello
This
We

将匹配到的单词作为字段输出,但不包括标点符号(-W):

awk -W '{print $1}' test.txt

输出结果:

Hello
This
We

限制输出的行数(-m):

awk -m 2 '{print $1}' test.txt

输出结果:

Hello
This

限制输出的字节数(-M):

awk -M 10 '{print $1}' test.txt

输出结果:

Hello

结尾

以上就是本期的全部内容,希望对你有所帮助,一键三连拜谢!

文章来源:https://blog.csdn.net/qiaomuv/article/details/135382574
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。