
我想使用“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.2
i.10
awk