Korn 쉘 스크립트 내부의 텍스트 파일에 언급된 파일 경로를 읽는 방법은 무엇입니까?

Korn 쉘 스크립트 내부의 텍스트 파일에 언급된 파일 경로를 읽는 방법은 무엇입니까?

여러 로그 파일을 읽고 특정 문자열이 포함된 줄을 찾는 스크립트를 작성 중입니다. 그러나 파일을 egrep/grep하려고 하면 오류가 발생합니다.

읽고 싶은 로그 파일의 이름이 포함된 파일이 있습니다(아래 참조).

파일.txt

./code_a.log
./code_b.log

로그분석.ksh

#!/bin/ksh

platform=$1
lw_platform=$(echo "$platform" | tr '[:upper:]' '[:lower:]')
log_dir="/project/$lw_platform/logs/"
read_file="/user/LogAnalysis/files.txt"
out_file="/user/LogAnalysis/out3.txt"

echo $lw_platform
echo $log_dir

while -r line; do

    echo "Began: $line" >> $out_file

    cd ${log_dir}
    echo $(pwd)

    egrep -n 'ERROR:' $line >> $out_file

    echo "End: $line" >> $out_file

done < $read_file

콘솔 출력

test 
/project/test/logs/ 
/project/test/logs 
.grep: 0652-033 Cannot open ./code_a.log

egrep그러나 셸에서 동일한 명령을 직접 실행하면 이 오류가 발생하지 않습니다. 파일을 읽을 수 있는 권한이 있음을 증명하십시오.

답변1

파일을 dos 줄 끝에서 UNIX 형식으로 변환하여 문제를 해결했습니다. 다음 명령을 사용했습니다.

dos2unix files.txt

관련 정보