问题描述
我只想剪切IP地址。我尝试了cut -d':' -f1
,但是使用了其他我不想要的单词。
resolvectl query remote.geo.com
但是我有:
remote.geo.com: X.X.X.X -- link: enp0s31f6
我只想要
X.X.X.X
我可以选择第一行,但是还有其他字眼。
解决方法
使用awk
:
remote.geo.com: X.X.X.X -- link: enp0s31f6|awk '{print $2}'
如果分隔符为cut
并且其中有多个' '
,则 as spaces
将失败。
您可以JdbcTemplate
在空格旁输入第二个字段:
cut
,
resolvectl query remote.geo.com|grep -oE '[[:space:]][[0-9.]+[[:space:]]'|tr -d '[:space:]'
正则表达式的两侧都以空格为界,以避免在输出的其他字段(例如,在链接信息中)拾取数字字符串,然后tr
会将其删除。 / p>
像大多数现代命令一样,resolvectl
带有一个标志来关闭修饰,这使得解析输出变得更加容易。
resolvectl query --legend=false remote.geo.com | awk '{print $2}'
如果您不习惯使用resolvectl
,则可以从dig
或host
(的某些版本)获得机器可读的输出:
dig +short remote.geo.com