利用Linux掌握awk命令的妙用(linux命令awk)

熟练掌握 linux 中 awk 命令可以给我们带来很多便利,awk 具有处理海量数据文本文件的强大功能,并拥有很强的文本格式处理功能,具体有哪些妙用呢?我们可以一起来看看吧。

首先,我们先来介绍 awk 命令的基本语法结构:

1. awk ‘模式 {动作}’ 输入文件

其中,模式用于指定特定的内容,动作则定义了当匹配到特定的模式时,要执行的命令,输入文件则指定了需要处理的文档,可以是文件或目录,也可以是管道程序输出的文本,具体用法如下:

//例如,想要按行打印所有四位数

$ awk ‘/^[0-9][0-9][0-9][0-9]$/ {print $0}’ filename

我们可以利用 awk 命令将文本的每一行的字段提取出来,例如:

//读取文件中的某一行

$ awk ‘NR==4 {print}’ filename

//提取某一行的前几个字段

$ awk ‘BEGIN {FS=” “; OFS=” “} {print $1, $2}’ filename

//计算某字段的总和

$ awk ‘{sum+=$1} END {print sum}’ filename

//根据某字段分类输出

$ awk ‘$1==”foo” {print $0}’ filename

此外,awd 还可以用于文本格式转换,比如我们可以将大量 CSV 格式文本转换为 JSON 格式,再如将每一行作为数组元素进行输出等,详细示例可以参考以下代码:

//CSV 转换为 JSON

$ awk ‘BEGIN {

FS = “,”;

OFS = “, “

print “{“

}

{

if (NR > 1)

{

for (i=1; i

{

printf “\”%s\”: \”%s\””, $i, $(i+1);

if (i

{

printf “%s”, OFS

}

}

printf “}”

}

}’ filename

另外,awd 的另一大特性是可以实现简单的程序分析,我们可以实现一些简单的条件判断和循环判断,也可以利用函数实现更复杂的程序分析,具体用法如下:

//读取文件中的某一行,如果所读行的字段和预设值相同,打印

$ awk ‘NR==4 {

if ($1 == “foo”)

print

}’ filename

以上就是 awk 命令妙用的简单介绍,awk 命令可以给我们带来很多以Linux 管理工作的便利,希望本文對你有所幫助。

创新互联服务器托管拥有成都T3+级标准机房资源,具备完善的安防设施、三线及BGP网络接入带宽达10T,机柜接入千兆交换机,能够有效保证服务器托管业务安全、可靠、稳定、高效运行;创新互联专注于成都服务器托管租用十余年,得到成都等地区行业客户的一致认可。

本文名称:利用Linux掌握awk命令的妙用(linux命令awk)
链接分享:http://www.shufengxianlan.com/qtweb/news9/316959.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联