文字列に一致するシェルスクリプトとコメント行を介してファイルを読み取る

文字列に一致するシェルスクリプトとコメント行を介してファイルを読み取る

シェルスクリプトを介してファイルを読み取り、文字列に一致する行をコメントアウトします。

シェルスクリプトを介して一致するファイル行(final_ip)に注釈を付けたいです。

検索IPがfinal_ipファイルと一致する場合は、入力ファイル(input_ip)があり、以下に示すファイルの内容を変更します。

変更前:

192.168.1.12 #SAM

変更後は一致する行を置き換える必要があります。

# 192.168.1.12 #SAM

ベストアンサー1

sed '/<string>/s/^/<comment_char>/' <file>

/<string>/一致するラインで動作します<string>^行の先頭で操作を実行し、コメント文字を挿入します。

私が理解しているように、ファイルからIPアドレスを読みたいと思います。その後、次のスクリプトを使用できます。使用法: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

スクリプトを移植する必要がない場合は、GNU sedの-iスイッチを使用することもできます。

おすすめ記事