私は〜100個のファイルを持っていますので、ファイルの2番目の列に算術演算(たとえば合計)を行いたいと思います。 2番目のファイルの最初の行の値に、各ファイルの2番目の列のすべての行に続きます。複数の異なるファイルから列の値を追加する
私の実際のファイルには〜30,000行ありますので、行を使って手動で操作することはできません。
FILEA
1 1
2 100
3 1000
4 15000
FILEB
1 7
2 500
3 6000
4 20000
FILEC
1 4
2 300
3 8000
4 70000
出力:
1 12
2 900
3 15000
4 105000
私はこれを使用して、それを:script.sh listofnames.txt
として実行しました(すべてのファイルは同じ名前ですが、別々のディレクトリにありますので、ディレクトリ名のリストを持つファイルに$line
を付けて参照していました)。これは私に構文エラーを与え、私はそうでなければ "合計"を定義する方法を探しています。
while IFS='' read -r line || [[ -n "$line" ]]; do
awk '{"'$sum'"+=$3; print $1,$2,"'$sum'"}' ../$line/file.txt >> output.txt
echo $sum
done < "$1"
私は100個以上のファイル(不規則な文字列名で、数字だけではない)を持っているので、最後にfileA fileB fileCを書くことは実際には実現できません。何とかその部分をスクリプト化できますか? –
あなたのディレクトリに他に何もないなら、 'awk '...' file *'だけが必要です。 –
@エドモートン、そうです。 – iamauser