繁体   English   中英

带AWK的多字段分隔符

[英]Multiple Field separators with AWK

我正在尝试分离ifconfig并仅将当前IP,广播和网络掩码提供给我输出。 我遇到的问题是输出在空格和冒号中。 我一定想念一些东西,因为我似乎无法绕开这部分。 我的OFS语句似乎没有起作用。

ifconfig eth0 | grep "inet addr" | awk -F ':' 'BEGIN{OFS=" ";}{print $2}' 

输出此:

127.0.0.1  Bcast

以上是本机的IP。 我真的只想要它输出

127.0.0.1

一些简单的解决方案:

ifconfig eth0 | tr : \  | awk '/inet addr/{ print $3 }'

ifconfig eth0 | tr -s \  | awk '/inet addr/{print $4 }' FS=':| '

也:

ifconfig eth0 | awk '/inet addr/{print $13 }' FS=':| '

如果您知道您将始终有一个静态字符串,那么也许只是替换对您有用?

ifconfig eth0 | awk '/inet addr/{ sub(/addr:/, "", $2); print $2; }' 

您还可以使用sed:

ifconfig eth0 | sed -n '/inet addr/{s/[^:]*:\([^ ]*\).*/\1/p}'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM