我只是想知道如何编写一个shell脚本来将代理IP与其端口分开。
代理以这种格式存储
ip:port
ip:port
ip:port
如何使用shell脚本将冒号左侧的IP与右侧的端口分开,并将IP和端口列表放在具有相同顺序的单独.txt文件中?这甚至可能吗?
答案 0 :(得分:1)
如果代理以某种方式列在文件中,比如proxy.txt,那么您只需要cut
:
cut -f1 -d: proxy.txt > proxy_ip.txt
cut -f2 -d: proxy.txt > proxy_port.txt
答案 1 :(得分:0)
尝试这样的事情:
#!/bin/bash
ips="1.2.3.4:123 2.3.4.5:356 4.5.6.7:576"
# or get IPs from stdin
# split them
ips_array=($ips)
for w in ${ips_array[@]}
do
echo $w | sed -e 's/:.*$//g' >> ips.txt
echo $w | sed -e 's/^.*://g' >> ports.txt
done
Key正在使用($ips)
拆分列表。
编辑:
我刚刚意识到你没有正确地格式化你的问题所以它不是一条带有IP的线:PORTs用空格分隔,但是一条线路本身。你只需要这个:
#!/bin/bash
while read w
do
echo $w | sed -e 's/:.*$//g' >> ips.txt
echo $w | sed -e 's/^.*://g' >> ports.txt
done
你从stdin读到。