我在 txt 文件中有 IP:PORT 列表,它们是代理。 我有一个案例,如果它不起作用(代理),我会将其删除
sed -i "/$proxy[^0-9]/d" proxy.txt
但是它不起作用。
我正在尝试删除变量 $proxy 中指定的 IP:PORT (包含该 IP:PORT 的行),例如 78.102.43.251:8080
与 sed
无论我尝试什么,我最终都会删除多行,而不是仅删除变量中指定的一行。
网上除了IP:PORT什么也没有
谢谢
proxy.txt
的内容
79.155.89.121:8080
36.78.131.82:3128
115.84.178.37:3128
183.88.112.146:8080
205.237.163.78:80
162.243.202.25:80
186.219.106.4:8080
154.72.192.154:8080
$proxy 变量定义如下:
proxy.txt | while read -r proxy; do
最佳答案
我的机器上有 FreeBSD,这个命令对我有用:
proxy="152.16.12.15:1515"
sed -i -e "s/$proxy//g" proxy.txt
上面的答案将 $proxy 字符串替换为空白。它会生成不需要的空行。
工作答案(来自评论)是:
sed -i.bak "s/^$proxy/d" file
关于regex - 使用 sed 删除变量中指定的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41739412/