sed '/<string>/s/^/<comment_char>/' <file>
/<string>/
opera nas linhas correspondentes a <string>
. ^
opera no começo da linha e insere o caractere de comentário.
Pelo que entendi, você quer ler o endereço IP de um arquivo. Então você pode usar o seguinte script. Uso: script <file_containing_the_IP_address> <file_to_operate_on>
#!/bin/sh
ip_file="$1"
file_to_change="$2"
comment='# '
ip=$(sed 's/\./\./g' "$ip_file")
temp_file=$(mktemp)
sed "/$ip/s/^/$comment/" "$file_to_change" > "$temp_file" &&
mv -- "$temp_file" "$file_to_change"
exit 0
Se o script não precisar ser portátil, você também pode usar a opção -i
do GNU sed.