讀取目錄中檔案清單中的第一個檔案

讀取目錄中檔案清單中的第一個檔案

我想使用“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

相關內容