
"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