file1とfile2という2つのファイルがあります。
file1の内容は次のとおりです。
ABC_DEC_EDC=ON
WER_QSD_RCS=ON
ファイル2の内容は次のとおりです。
TRD_OIY_REC=ON
YUH_PON_UYT=ON
WER_QSD_RCS=OFF
file2の内容を1行ずつ確認する必要があります。
最初
if ABC_DEC_EDC=ON
file2には存在せず、file2に追加されます。
第二
最初のファイルに;SAX_IUY_TRE=OFF
がありますが、OFF
ファイル2には;SAX_IUY_TRE=ON
があります。ON
この場合、ファイルを更新したいと思いますOFF
。
例:SAX_IUY_TRE=OFF
すべての更新はfile2でのみ発生します。
出力は次のようになります。
ABC_DEC_EDC=ON
WER_QSD_RCS=ON
WER_RTC_YTC=ON
WER_QSD_RCS=OFF
ベストアンサー1
sh
実装する。
#!/bin/sh
while read -r LINE
do
setting=$(echo $LINE | sed 's/=.*//')
switch=$(echo $LINE | sed 's/.*=//')
found=$(grep "$setting" file2)
if [ -z "$found" ]
then
echo $LINE >> file2
else
if [ "$switch" != "$(echo $found | sed 's/.*=//')" ]
then
sed -i "s/\($setting\).*/\1=$switch/" file2
fi
fi
done < file1
このスクリプトは、一致しない2つのファイルで見つかった設定値を反転します。