Grep 在字符串的第一个实例之后获取输出

Grep 在字符串的第一个实例之后获取输出

我目前正在使用 Docker 的 CentOS 映像。我想做的是grep遇到某个字符串后得到某个值。在本例中,字符串是“inet”。

到目前为止我所做的:

# ifconfig | grep 'inet'

给我以下输出:

inet 192.168.208.4  netmask 255.255.240.0  broadcast 192.168.223.255
inet 127.0.0.1  netmask 255.0.0.0

但是,我只需要第一个 inet IP 地址 (192.168.208.4) 稍后存储在环境变量中。我愿意使用 grep 的替代品,例如 awk。任何帮助是极大的赞赏。

答案1

您有一个输出多行文本的命令,并且您只需要第一行输出。该head命令在这里可能有用:

ifconfig | grep 'inet' | head -n 1

如果您只需要 IP 地址,那么您可以使用awk

ifconfig | awk '/inet/ { print $2; exit }'

这将从包含字符串 的第一行中提取第二个空格分隔的字段inet,然后终止。

相关内容