2つのファイルがあります。最初のファイルには11個の列があります。たとえば、次のようになります。
1 2 3 4 5 6 7 8 9 10 11
2番目の項目には10個の列があります。
11 22 33 44 55 66 77 88 99 100
私がやりたいことは、file1を見て、列7が14から15の間の値である場合、file1の列9をfile2の列9の値に置き換えることです。したがって、上記の例では、file1は次のように書き換えられます。
1 2 3 4 5 6 7 8 99 10 11
列が特定の値の間にあることを確認するのは簡単です。
awk '$7 < 15 && $7 >= 14
しかし、file1の列9をfile2の値に置き換えるのに問題があります。 file1 は 1 つだけ減らす必要はありません。行数に制限はなく、値が14から15の間のすべてのインスタンスで9列を置き換える必要があります。値が14未満または15より大きい場合、列はそのままにしてください。私はこれが難しいとは思わないが、運がなかった。どんな助けでも大変感謝します。よろしくお願いします!
ベストアンサー1
9番目のフィールドの値を使用するには、1行だけを使用してください。file2
awk 'NR==1{a=$9}FNR==NR{next}14<=$7&&$7<15{$9=a}1' file2 file1