디렉터리의 파일 목록에서 첫 번째 파일 읽기 [중복]

디렉터리의 파일 목록에서 첫 번째 파일 읽기 [중복]

"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

관련 정보