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

おすすめ記事