1

ファイルに保存されているファイルの拡張子のリストからのすべてのファイルが特定のディレクトリの場所にあることを確認するためのshスクリプトを作成しようとしています。私は次のことをやっています:

ファイル名は yyyymmdd.ext のようになります

hoff_list.lst サンプルは次のとおりです。

abc
dfg
hij
klm
xxx
...

私のスクリプトは次のとおりです。

#!/bin/ksh
PATH=$PATH:/usr/bin
_input="/exchange/hoff_list.lst"
hoffdate="20130328"
hsourcedir="/upload_data/"
while IFS=' \t\n' read -r line; do
echo "=$line=" #first problem there
hoff_name=$hsourcedir$hoffdate"."$line
  if test ! "$hoff_name"
     then echo "$hoff_name DOES exist"
     else echo "$hoff_name does NOT exist or is empty"
  fi
done < "$_input"

しかし、それは関連する返信を元に戻しません。ファイルがディレクトリに存在する必要がある場合、ファイルは見つかりません。echo "=$line="

戻る

=abc
=dfg
...

予想されるとき

=abc=
=dfg=
...

問題があるように見えますが、それを処理する方法についての手がかりがありません。あなたの助けに感謝します...

4

1 に答える 1

1

ファイル/exchange/hoff_list.lstには CRLF 行末http://en.wikipedia.org/wiki/Newlineがあります。

CR を削除します。dos2unixほとんどの Linux システムで利用可能なユーティリティを試してみるか、 http://en.wikipedia.org/wiki/Newline#Conversion_utilitiesを参照してください。

于 2013-04-08T13:28:27.153 に答える