コマンドラインを使用して検索と置換

コマンドラインを使用して検索と置換

私のlog.txtファイルには以下が含まれます。

...
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
...

どのように交換できますか?

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

そして

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 0.0.0.0/0  

コマンドラインから?つまり、0.0.0.0/0行末に追加したいのです。

ベストアンサー1

sedを使う

sed -i 's+^mynetworks.*+& 0.0.0.0/0+' log.txt

awkを使う

awk '/^mynetworks/ {$0=$0" 0.0.0.0/0"} 1' log.txt

または

awk '{if ($1 ~ /^mynetworks/) print $0, "0.0.0.0/0"; else print $0}' log.txt

バッシュを使って

while read -r line ; do
    [[ $line == mynetworks* ]] && line+=" 0.0.0.0/0"
    echo "$line"
done < log.txt

おすすめ記事