file1
以下があるとしましょう。
1,2,3,4,12,6
1,2,3,5,333,6
1,2,3,12,5,6
1,2,3,44,101,6
また、file2
以下が含まれます:
22,4,111,1,6,7,12
22,4,56,55,6,7,12
22,4,12,12,6,7,12
22,4,333,102,6,7,12
私が望むのは、5th
フィールドfile1
値が3rd
印刷されたフィールド値より大きい場合ですfile2
。Value 333 greater than 56
awkを使ってこれを行うにはどうすればよいですか?
答え1
$ awk -F, 'FILENAME=="file1" {inputs[FNR]=$5} FILENAME=="file2" && inputs[FNR] > $3 {print inputs[FNR] " is greater than " $3 " on line " FNR}' file1 file2
333 is greater than 56 on line 2
答え2
同じ所望の出力を得るために、以下の方法を使用した。
for i in {1..4}; do second_file=`awk -F "," -v i="$i" 'NR==i{print $3}' j.txt`; first_file=`awk -F "," -v i="$i" 'NR==i {print $5}' l.txt`; if [[ $first_file -gt $second_file ]]; then echo $first_file is greater than $second_file; fi; done
出力
333 is greater than 56