"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