awk
可以设置条件来输出文件中m行到n行中每行的指定的k字段,使用格式如下
awk
‘NR==m,NR==n
$k}’
path/filename
m,n,k表示实在的数值。如果要用变量来表示m,n的值,则变量需要用单引号将其引起来。
NR,{print
}是awk命令在此用法下的规定字段;path/filename表示读取文件的路径及文件名。
当要读取某一行的内容的k字段时,使用格式如下
awk
‘NR==m
$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列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)