嘗試在某些文本之前和之後添加文本

嘗試在某些文本之前和之後添加文本

我嘗試了以下命令:

  1. 運行下面的行會給出提到的輸出文字。

    cat $tmp_list_address | sort | uniq | sed 's/^/address=\//;s/$/\/192.168.1.1/' > $tmp_list_final
    
  2. 運行下面的行會給出提到的輸出文字。

    sed -i 's/.*/address=&\/192.168.1.1/' $tmp_list_address
    
  3. 我甚至嘗試分開做事。下面補充一下這address=部分。但是當它嘗試在末尾添加 IP 時,它會更改為下面的輸出文字。

    sed -i 's/^/address=/' $tmp_list_address
    sed -i 's/$/$pixelserv_ip/' $tmp_list_ip
    

原始列表是我想要獲取的列表,其中也保存了空白和空白,我在嘗試添加文字之前將其刪除。

curl -s http://www.malwaredomainlist.com/hostslist/hosts.txt | grep -v "#" | sed '/^$/d' | sed 's/\ /\\ /g' | awk '{print $3}' | grep -v '^\\' | grep -v '\\$' | sort >> $tmp_list

sed -i 's/^ *//; s/ *$//; /^$/d' $tmp_list

期望的輸出:

address=/0koryu0.easter.ne.jp/0.0.0.0
address=/109-204-26-16.netconnexion.managedbroadband.co.uk/0.0.0.0
address=/11.lamarianella.info/0.0.0.0

注意:0.0.0.0也可以是其他一些 IP 位址,例如192.168.1.1.

輸入文字:

0koryu0.easter.ne.jp
109-204-26-16.netconnexion.managedbroadband.co.uk
11.lamarianella.info
1866809.securefastserver.com
2amsports.com
3.bluepointmortgage.com

輸出文字:

/10.0.0.1109-204-26-16.netconnexion.managedbroadband.co.uk
/10.0.0.111.lamarianella.info
/10.0.0.11866809.securefastserver.com
/10.0.0.12amsports.com
/10.0.0.13.bluepointmortgage.com

答案1

使用 sed 分組。

curl -s http://www.malwaredomainlist.com/hostslist/hosts.txt | sed 's#^\([0-9.]*\)  \([a-z0-9.]*\)#address=/\2/0.0.0.0#'

相關內容