Bash 从文本文件解析ip:port的Shell脚本

Bash 从文本文件解析ip:port的Shell脚本,bash,shell,text-parsing,Bash,Shell,Text Parsing,我每天都会收到一个ip:port的文本文件,每行一个,例如: 11.22.33.44:80 22.33.44.55:8080 33.44.55.66:7777 我想在两个不同的变量中解析第一个ip和端口,然后将它们写入另一个文件,等待使用这些变量的程序的执行,循环这个循环,将所有ip:port传递给文件并执行程序 我该怎么做 感谢您一个纯bash解决方案: cat in.txt | sed -e "s/:/ /" | while read ip port do echo $ip $port

我每天都会收到一个ip:port的文本文件,每行一个,例如:

11.22.33.44:80
22.33.44.55:8080
33.44.55.66:7777
我想在两个不同的变量中解析第一个ip和端口,然后将它们写入另一个文件,等待使用这些变量的程序的执行,循环这个循环,将所有ip:port传递给文件并执行程序

我该怎么做

感谢您

一个纯bash解决方案:

cat in.txt | sed -e "s/:/ /" | while read ip port
do
  echo $ip $port # or do something with it
done
while IFS=: read ip port; do
    echo $ip $port
done < in.txt
而IFS=:读取ip端口;做
echo$ip$端口
done

这样做的好处是,您可以在while循环中设置变量,这些变量在循环完成后仍然可用。

工作正常,即使是编辑之前的代码,非常感谢:)我的第一个版本没有那么好:)抱歉,有可能得到3种不同的东西吗?如11.22.33.44:80@blabla,我想在其他变量中获得blabla,谢谢注意,这不仅仅是纯bash,也是纯sh。总有一天,我会了解哪些功能是bash扩展,哪些功能在POSIX规范中。感谢您的解决方案,仍然使用over one,因为我在循环中使用了这些变量