使用Shell脚本从端口分离IP?

时间:2013-08-28 23:11:39

标签: linux shell

我只是想知道如何编写一个shell脚本来将代理IP与其端口分开。

代理以这种格式存储

ip:port
ip:port
ip:port

如何使用shell脚本将冒号左侧的IP与右侧的端口分开,并将IP和端口列表放在具有相同顺序的单独.txt文件中?这甚至可能吗?

2 个答案:

答案 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读到。