Files
讀取目錄中文件列表中的第一個文件
我想使用“cat or vi”讀取每個目錄中的第一個文本文件。為了澄清這個問題:
Folder_A1 包含 1000 個文本文件。以以下格式命名的文件“i.1351”。所有文件名都以“i”開頭。並且這些文件之間的數量不同。
我有 500 個文件夾,每個文件夾包含 ~1000 個文本文件 (*.txt),我只想讀取每個文件夾中的第一個文件。我怎樣才能做到這一點?
如果您真的想要目錄順序中的第一個文件,並假設所有文件夾名稱都以 開頭
Folder_
,則所有以開頭的條目Folder_
都是目錄,並且所有以 開頭的條目i.
都是文件:for d in Folder_*; do for f in "$d"/i.*; do cat -- "$f" break done done
由於排序,這有點慢。
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.2``i.10``awk