0

ファイル1:

456
445
2323

ファイル2:

433
456
323

2 つのファイルのデータの欠損値を取得し、output.txt に出力します。つまり、次のようになります。

23
-11
2000

どうすればこれを認識できますか? ありがとうございました。

4

4 に答える 4

4
$ paste file1 file2 | awk '{ print $1 - $2 }'
23
-11
2000
于 2012-04-26T22:54:34.857 に答える
1

純粋な bash で、外部ツールを使用しない場合:

while read -u 4 line1 && read -u 5 line2; do
  printf '%s\n' "$(( line1 - line2 ))"
done 4<file1 5<file2

これは、両方のファイルを開く (ファイル記述子 4 と 5 に添付する) ことで機能します。反復ごとに各記述子から 1 行を読み取るループに入り (いずれかの記述子に値がない場合はループを終了します)、結果を計算して出力します。

于 2012-04-26T22:55:53.677 に答える
1

貼り付けを使用して数式を作成し、bc を使用して計算を実行します。

paste -d - file1 file2 | bc
于 2012-04-27T01:50:20.707 に答える
0

列間で操作するには、paste と awk を使用できます。

paste -d" " file1 file2 | awk -F" " '{print ($1-$2)}'

または、ファイルにパイプすることもできます:

paste -d" " file1 file2 | awk -F" " '{print ($1-$2)}' > output.txt

それが役に立てば幸い!

于 2012-04-26T23:06:37.670 に答える