Files

讀取目錄中文件列表中的第一個文件

  • September 29, 2016

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

引用自:https://unix.stackexchange.com/questions/313202