次のような 100 個のテキスト ファイルがあります。
File title
4
Realization number
variable 2 name
variable 3 name
variable 4 name
1 3452 4538 325.5
7 行目の最初の数字 (1) は認識番号で、ファイル名に関連付ける必要があります。つまり、最初のファイルは file1.txt と呼ばれ、認識番号は 1 です (上記のように)。2 番目のファイルは file2.txt と呼ばれ、7 行目に認識番号 2 が必要です。file3.txt の 7 行目に認識番号 3 が含まれている必要があります。
残念ながら、すべてのファイルには realization=1 があり、ファイル名に応じてインクリメントする必要があります。
各ファイルの 7 行目 (3452、4538、および 325.5) から変数 2、3、および 4 を抽出し、summary.txt という要約ファイルに追加します。
1つのファイルから情報を抽出する方法を知っています:
awk 'NR==7,NR==7{print $2, $3, $4}' file1.txt
これは、正しく私に与えます:
3452 4538 325.5
私の最初の問題は、このコマンドを複数のファイルで bash スクリプトから実行すると、同じ結果が得られないように見えることです。
#!/bin/bash
for ((i=1;i<=100;i++));do
awk 'NR=7,NR==7{print $2, $3, $4}' File$((i)).txt
done
上記のスクリプトを使用すると、画面に複数の行が出力されます。
次に、これらの値を正しい前の認識番号とともに要約ファイルに出力したいと思います。つまり、次のようなファイルが必要です。
1 3452 4538 325.5
2 4582 6853 158.2
...
100 4865 3589 15.15
助けてくれてありがとう!