如何读取 Korn shell 脚本内文本文件中提到的文件路径?

如何读取 Korn shell 脚本内文本文件中提到的文件路径?

我正在编写一个脚本来读取多个日志文件并查找具有特定字符串的行。但是,当我尝试对文件进行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但是,如果我直接在 shell 中运行相同的命令,则不会收到此错误。证明我有读取该文件的权限。

答案1

我通过将文件从 dos 行结尾转换为 UNIX 格式解决了这个问题。我使用了以下命令。

dos2unix files.txt

相关内容