最近遇到过一个场景需要给别人提供一个ip列表,但是我并没有生成ip列表的接口,只有一个接口能够查询完整的相应结果,其中包含了每台服务器的ip。因此需要把ip从结果里匹配出来。
记录下用到的指令。
定义正则表达式
ip_regex="[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}"
从文本里匹配出ip地址,排序去重,并保存到ip.txt
cat "resp.txt" | egrep -o $ip_regex | sort | uniq > ip.tx
有时候想要在程序里作为字符串数组使用,怎么把文本里的ip列表转为数组呢?
给每行的ip
添加双引号
sed 's/^/"&/;s/$/&",/' ip.txt > ips.txt
另外,在每行的头添加字符命令:
sed 's/^/字符&/g' ip.txt
在每行的行尾添加字符命令:
sed 's/$/&字符/g' ip.txt
导出文件,在命令末尾加 > outfile_name