Linux中的强大的行处理器工具!awk!
2024-01-07 17:48:04
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!