ディレクトリのファイルリストから最初のファイルを読み込む[重複]

ディレクトリのファイルリストから最初のファイルを読み込む[重複]

「catまたはvi」を使用して各ディレクトリの最初のテキストファイルを読みたいです。質問を明確にするには:

Folder_A1には1000個のテキストファイルが含まれています。ファイル名は以下の形式で「i.1351」と指定します。すべてのファイル名は「i」で始まります。そして、ファイルごとに数字が異なります。

500個のフォルダがあり、各フォルダには約1000個のテキストファイル(* .txt)が含まれており、各フォルダの最初のファイルのみを読み取ろうとします。どうすればいいですか?

答え1

ディレクトリの順序で最初のファイルが必要で、すべてのフォルダ名がで始まると仮定すると、で始まるすべてのエントリはディレクトリで、Folder_Folder_始まるすべてのエントリはi.ファイルです。

for d in Folder_*; do
    for f in "$d"/i.*; do
        cat -- "$f"
        break
    done
done

答え2

並べ替えのため少し遅いです。

find . -type f | sort -V | 
awk -F/ '{ dir=substr($0,1,length($0)-length($NF));
           if(last==dir)next; last=dir; print}' |
| xargs cat

まずソートされています-V。ディレクトリが変更されるたびにファイル名が印刷されます。 (名前にスペースがないとします。)i.2i.10awk

関連情報