linux awk 如何只输出指定行

ifconfig |awk '{NR==2}{{split($2,a,":")}{print a[2]}}'

希望只输出 第二行,就是使用ifconfig 包括IP的那行。但使用上面的命令,所有行就都输出了,应该如何修改

-F fs or –field-separator fs
指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:

-v var=value or –asign var=value
赋值一个用户定义变量。

-f scripfile or –file scriptfile
从脚本文件中读取awk命令。

-mf nnn and -mr nnn
对nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。

-W compact or –compat, -W traditional or –traditional
在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。

-W copyleft or –copyleft, -W copyright or –copyright
打印简短的版权信息。

-W help or –help, -W usage or –usage
打印全部awk选项和每个选项的简短说明。

-W lint or –lint
打印不能向传统unix平台移植的结构的警告。

-W lint-old or –lint-old
打印关于不能向传统unix平台移植的结构的警告。

-W posix
打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符和=不能代替^和^=;fflush无效。

-W re-interval or –re-inerval
允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。

-W source program-text or –source program-text
使用program-text作为源代码,可与-f命令混用。

-W version or –version
打印bug报告信息的版本。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-13

ifconfig |awk 'NR==2{split($2,a,":");print a[2]}'

就行,原来NR==2那里的多了一对{ }

追问

有没有这个大括号的区别在于什么

追答

没有大括号表示判断,这是awk语法,格式为 pattern + action

本回答被提问者采纳
第2个回答  2014-12-18
▶ ifconfig|awk 'NR==2{split($2,a,":");print a[2]}'
你试试。别多循环,你2个{}啊。
第3个回答  2014-12-17

用if语句呀;

ifconfig |awk '{if(NR==2){split($2,a,":");print a[2]}}'