shell awk如何输出文件的指定列

shell awk如何输出文件的指定列,第1张

awk指定读取文件中的某一行的某个字段

awk

可以设置条件来输出文件中m行到n行中每行的指定的k字段,使用格式如下

awk

‘NR==m,NR==n

{print

$k}’

path/filename

m,n,k表示实在的数值。如果要用变量来表示m,n的值,则变量需要用单引号将其引起来。

NR,{print

}是awk命令在此用法下的规定字段;path/filename表示读取文件的路径及文件名。

当要读取某一行的内容的k字段时,使用格式如下

awk

‘NR==m

{print

$k}’

path/filename

m,k与以上的含义一致,分别表示要读取的行数和当前行的第k字段。

#!/bin/bash

output()

{

cat<<EOF

190000020017|{ { NAS-IP-Address {61148276} }  { NAS-Port-Id {slot=63;subslot=2;port=8;vlanid=75;vlanid2=16;} }  { ai-Agreement-Id {190000020017} }  { ai-Max-Session {1} }  { ai-author-profile {10M@6} }   { ai-RoamingLevel {1} }  { Framed-IP-Address {0000} }  { ai-Service-State {1} }  { ai-SvcAuthen {1003} }  { ai-SvcAcct {11003} }  { ai-ldap-flag {0} }  { NAS-Port {0000} }  { Filter-Id {0000} }  { ai-UserNode {120} }  {AI-Credit-Level {2}} {ai-Service-Id {8010001}} {username {190000020017}} {password {dbc6bc9494167f53}}}

EOF

}

output | awk '{

        print $0

        if(match($0, /username {([0-9]+)}} {password {(+)}}}$/, adata))

                print adata[1] " " adata[2]

}'

打印最后一行的第二列就这样:

awk 'END{print $2}' yourfile

打印指定行的指定列(例如第4行第2列):

awk 'NR==4{print $2}' yourfile

以上就是关于shell awk如何输出文件的指定列全部的内容,包括:shell awk如何输出文件的指定列、用awk或sed怎么能实现取第一个值和最后的值、awk 打印出最后一行的第1列或者第2列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10152780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存