내 txt 파일을 읽을 수는 없지만

내 txt 파일을 읽을 수는 없지만

이 코드를 사용하여 "파일 이름"과 "줄 번호"를 읽고 인쇄하고 있지만 코드가 1개의 디렉터리를 읽은 다음 오류 메시지 없이 중지할 수 없습니다. !

#!/bin/bash
find . -type d > mydirectory.txt
MyDir=mydirectory.txt
while read -r line; do
    FileDir=$line/*.txt
    for file in ${FileDir}
    do
        awk 'END{q="\047"; print "filename",", nlines"; print q FILENAME q "," q NR q}' "$file"
    done > list.txt
done < mydirectory.txt

첫번째 줄:

find . -type d > mydirectory.txt

모든 디렉터리와 하위 디렉터리를 가져와 "mydirectory.txt"에 저장합니다.

그런 다음 "mydirectory.txt"의 각 줄을 읽으십시오.

while read -r line; do
        FileDir=$line/*.txt

코드는 첫 번째 디렉터리에서만 검색합니다. 인사

답변1

귀하의 스크립트가 수행하는 작업이 완전히 명확하지는 않지만 다음과 같은 작업을 수행한다고 가정합니다.

{
    echo "filename,nlines"
    find . -type f -name '*.txt' -exec \
        awk -v q="'" 'BEGIN{OFS=q","q}
                      ENDFILE{print q FILENAME, FNR q}' {} +
} > list.txt

위의 작업은 GNU awk를 사용하여 수행됩니다 ENDFILE.

관련 정보