디렉토리 내의 파일 목록에서 첫 번째 파일 읽기

디렉토리 내의 파일 목록에서 첫 번째 파일 읽기

"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

관련 정보