Catカタログファイルはファイル名をテキスト行に追加し、ヘッダー行を削除しますか? [閉鎖]

Catカタログファイルはファイル名をテキスト行に追加し、ヘッダー行を削除しますか? [閉鎖]

カタログファイルを分類し、ファイル名をテキスト行に追加し、ヘッダー行を削除する方法は?これにより、all.txtファイルにヘッダー行が1つしかありません。

答え1

225のテキストファイルがあり、各ファイルには2行のテキスト、ヘッダー行、および数値データがあります。各テキストセットの元のファイル名は、データを含む行の最初の列に含めるファイル名です。また、最初の行を除くすべてのヘッダー行を削除/(コピーではない)したいと思います。これにより、一番上にヘッダー行が表示されます。

私が正しく理解したら、次のことをしたいと思います。

for file in *.txt; do echo "$file" $(tail -n1 $file) >> output.txt; done

次に、output.txtを編集して目的のタイトルを作成します。

答え2

$ cat a.txt
HEADER
a
b
c
$ cat b.txt
HEADER
1
2
3
$ awk 'NR==1 {print; next} FNR==1 {next} {print FILENAME, $0}' *.txt > all.txt
$ cat all.txt
HEADER
a.txt a
a.txt b
a.txt c
b.txt 1
b.txt 2
b.txt 3

答え3

awkを使用して変数を使用してNRFNR最初のファイルのヘッダー行を除くすべての行をスキップします。組み込み変数にアクセスして、FILENAME現在のファイル名を残りの行の前に追加できます。たとえば、各ファイルに2つのヘッダー行がある場合

awk 'NR<3; FNR>2 {print FILENAME,$0}' *.txt > all.txt

関連情報