次のように、file1 と file2 の 2 つのファイルがあります。
ファイル1 ファイル2 オレンジジュースorangejuice_9.88_9.88 パイナップルジュースリンゴスライス_6.3_2.2 りんごスライス pineapplejuice_1.2_3.9 マンゴージュース Mangojuice_5.55_5.55
出力は次のようになります。
オレンジジュース_988 パイナップルジュース_120_390 appleslices_630_220 マンゴージュース_555
file1 から 1 行ずつ読み取りながら、file2 の file1 の行で見つかったパターンを検索し、見つかったら file2 の 2 番目と 3 番目のフィールドを比較し、同じ場合は 1 回出力し、そうでない場合は 2 つの数値を出力します。いずれにせよ、数値に 100 を掛ける必要があります)
私はこれについて考えました:
while read -r -u 3 line1
do
nawk ' "$line1" print $0}' file2.txt
if "$2" == "$3"
then echo "scale=2;$2*100" |bc
else echo "$2_$3"
fi
done 3<file1.txt
したがって、ロジックが正しいかどうかを知り、988.0 ではなく 988 になる乗算を修正する必要があります。