linux - bash + 如何从线路中捕获IP地址

标签 linux bash perl awk

我有很多配置文件, 以LINE字开头的线路有IP地址

我的目标是从文件中读取以 LINE 字开头的行并仅打印 IP 地址

问题是IP地址可以在该行的任何字段中,所以我无法根据字段号捕获IP

示例

grep LINE file1.txt

LINE /home/Ariate/run.pl "Voda STS 4 Test -  " "102841" && ssh 17.77.170.130 -p 2022 



grep LINE file2.txt

LINE /home/Ariate/run.pl 137.77.170.30 "Voda STS 4 Test -  " "102841" && ssh  ACTIVE

请告知如何从线路中捕获IP地址(解决方案也可以使用perl oneliner)

预期结果

echo $IP_FROM_LINE

17.77.170.130



echo $IP_FROM_LINE

137.77.170.30

最佳答案

perl -MRegexp::Common=net -lne 'print $1 if /^LINE.*\b($RE{net}{IPv4})/'

关于linux - bash + 如何从线路中捕获IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26589947/

相关文章:

我可以在自己的C程序中捕获Linux程序执行的系统调用吗?

linux - 使用 iozone 工具对 SD 卡进行基准测试

bash - awk 打印在 bash shell 脚本中不起作用

web-services - 如何构建 perl 网络服务基础架构

perl - 散列的共享 Hashref 可能吗?

perl - 如何验证文件名?

linux - 如何使用终端更改网络信息的 IP 地址?

php - 使用 PHP 页面在远程 Linux 服务器上执行已安装的软件命令

用于获取(最新)文件的 python 代码,其中时间戳作为名称附加到电子邮件

regex - Grep Regex 匹配任何内容,包括换行符