あるファイルの行を取得し、別のファイルのすべての行を列ごとに減算したいと思います。
入力する:file1
1 1 1 1
3 1 5 1
1 5 8 2
入力する:file2
1 1 1 1
希望の出力:file3
0 0 0 0
2 0 4 0
0 4 7 1
ええと、sed?
ベストアンサー1
そしてawk
:
awk 'NR==1 { for(i=1; i<=NF; i++) a[i] = $i }
FNR!=NR { for(i=1; i <NF; i++) $i -= a[i]; print }' file2 file1
これは次のことを前提としています。
- 関連する行は
file2
常に最初の行です。 - 最初の行
file2
とすべての行file1
の列数が同じです。 - 列間に複数のスペースがある場合は、
file1
スペースを保持する必要はありません。