2つのファイルがあります。最初のファイルには 123 などの数字が記録され、2 番目のファイルは同じです。 file_Two = 123 + 123をfile_oneに追加し、結果= 246を追加したいと思います。合計または分割するには、算術シーケンスを変換したいと思います。ファイル番号で
答え1
ファイルを読んだら、シェルを使って算術を実行します。
$ echo 123 > file1
$ echo 123 > file2
$ printf '%d\n' $(( $(<file1) + $(<file2) ))
246
$ printf '%d\n' $(( $(<file1) / $(<file2) ))
1
または以下を使用してくださいbc
。
bc <<< $"$(<file1) + $(<file2)"
bc <<< $"$(<file1) / $(<file2)"
bc
ここでは、算術演算を実行し、ファイルの内容を入力として使用する前にファイルの内容を読み取る作業をシェルに提供しますbc
。
答え2
$ echo 123 > file1; echo 234 > file2
$ paste -d+ file1 file2 | bc
357
$ paste -d/ file1 file2 | bc -l
.52564102564102564102
答え3
このファイルのすべての内容が数値であり、追加のテキストがないと仮定すると、以下は、提供するすべてのファイルのすべての行を合計するPerlの行です。
perl -ne '$s+=$_;END{print "$s\n"}' file1 file2 file3 ...
-n
スイッチがPerlに与えられたファイルの各行で与えられたコードを実行するように指示するので、これはうまくいきます。行の内容が$_
変数に入るたびに。したがって、$s+=$_
累積合計を維持し、END
値を$s
。
またawk
:
awk '{ s+= $0 } END{print s}' file1 file2 file3 ...