gpt4 book ai didi

regex - 使用 sed 获取文件的 IPv4 地址并使用前缀导出

转载 作者:行者123 更新时间:2023-12-05 08:49:29 25 4
gpt4 key购买 nike

我有一个文件iplist.txt,内容为:

1.2.3.4
127.0.0.1
192.168.1.0/24
1111:2222:3333:4444::
5.6.7.8

我正试图找到一种方法来导出新文件 WITHOUT IPv6 并且在每一行都带有类似这样的前缀:

exportediplist.txt

/ip add address=1.2.3.4
/ip add address=127.0.0.1
/ip add address=192.168.1.0/24
/ip add address=5.6.7.8

我尝试做的第一件事是添加一个前缀:

originalfile=/somepath/iplist.txt
exportedfile=/somepath/exportediplist.txt
sed -e 's#^#/ip add address=#' $originalfile > $exportedfile

它工作正常,但我无法弄清楚如何从文件中删除 IPv6。 使用 sed 并不重要,只要能与 debian 一起工作即可。

最佳答案

grep/sed 组合:

$ egrep -v ':' iplist.txt | sed 's|^|/ip add address=|g'
/ip add address=1.2.3.4
/ip add address=127.0.0.1
/ip add address=192.168.1.0/24
/ip add address=5.6.7.8

另一个只使用 sed 的想法:

$ sed '/:/d;s|^|/ip add address=|g' iplist.txt
/ip add address=1.2.3.4
/ip add address=127.0.0.1
/ip add address=192.168.1.0/24
/ip add address=5.6.7.8

地点:

  • /:/d - 跳过/删除任何包含冒号的行 (:)
  • s|^|ip add address'|g - 在剩余行前面加上所需的字符串

一个awk想法:

$ awk '/:/ { next } { printf "/ip add address=%s\n", $0}' iplist.txt
/ip add address=1.2.3.4
/ip add address=127.0.0.1
/ip add address=192.168.1.0/24
/ip add address=5.6.7.8

关于regex - 使用 sed 获取文件的 IPv4 地址并使用前缀导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63974083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com