일부 텍스트 앞뒤에 텍스트를 추가하려고 합니다.

일부 텍스트 앞뒤에 텍스트를 추가하려고 합니다.

다음 명령을 시도했습니다.

  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#'

관련 정보