使用 sed 反向 IP 地址格式
Reverse IP address format with sed
我有一个 txt 文件,其中包含针对域名的 IP 地址列表。例如;
1.1.168.192 example1.example1.net
2.1.168.192 example2.example2.net
3.1.168.192 example3.example3.net
.....
12.1.168.192 example12.example12.net
我无法让我的 sed 命令将输出更改为;
192.168.1.1 example1.example1.net
192.168.1.2 example2.example2.net
192.168.1.3 example3.example3.net
....
192.168.1.12 example12.example12.net
我正在使用的 sed 命令是
sed -r 's/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.../'
用作
cat filename | sed -r 's/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.../'
唯一的问题是您在模式中包含了锚点 $
,它试图匹配每行的末尾但失败了。你只需要删除它:
$ sed -r 's/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.../' file
192.168.1.1 example1.example1.net
192.168.1.2 example2.example2.net
192.168.1.3 example3.example3.net
请注意,我将文件名作为参数传递给 sed,从而避免无用地使用 cat。
awk 版本
awk '{split(".",i,);printf "%d.%d.%d.%d %s\n",i[4],i[3],i[2],i[1],}' YourFile
$ sed -r 's/([^.]+)(\.[^.]+)(\.[^.]+)\.([^ ]+)/./' file
192.168.1.1 example1.example1.net
192.168.1.2 example2.example2.net
192.168.1.3 example3.example3.net
192.168.1.12 example12.example12.net
我有一个 txt 文件,其中包含针对域名的 IP 地址列表。例如;
1.1.168.192 example1.example1.net
2.1.168.192 example2.example2.net
3.1.168.192 example3.example3.net
.....
12.1.168.192 example12.example12.net
我无法让我的 sed 命令将输出更改为;
192.168.1.1 example1.example1.net
192.168.1.2 example2.example2.net
192.168.1.3 example3.example3.net
....
192.168.1.12 example12.example12.net
我正在使用的 sed 命令是
sed -r 's/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.../'
用作
cat filename | sed -r 's/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.../'
唯一的问题是您在模式中包含了锚点 $
,它试图匹配每行的末尾但失败了。你只需要删除它:
$ sed -r 's/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.../' file
192.168.1.1 example1.example1.net
192.168.1.2 example2.example2.net
192.168.1.3 example3.example3.net
请注意,我将文件名作为参数传递给 sed,从而避免无用地使用 cat。
awk 版本
awk '{split(".",i,);printf "%d.%d.%d.%d %s\n",i[4],i[3],i[2],i[1],}' YourFile
$ sed -r 's/([^.]+)(\.[^.]+)(\.[^.]+)\.([^ ]+)/./' file
192.168.1.1 example1.example1.net
192.168.1.2 example2.example2.net
192.168.1.3 example3.example3.net
192.168.1.12 example12.example12.net