Windows から生成されたファイルを Linux のスクリプトに貼り付ける必要があります。私のスクリプトは問題なく動作しますが、すべての行の最後に ^M 文字が表示されます。
どうすればbashで削除できますか?
現在、私のスクリプトは次のとおりです。
#/bin/bash
IFS=$'\n'
for CUSTOMER in `cat exp.csv`
do
echo $CUSTOMER
done
^M は Windows の改行 \r である必要があるため、すべての \r を削除するだけで済みます。これは、bash スクリプトから呼び出すことができる tr ツールを使用して実現できます。これはウィキペディアの記事からのものです (確認していません)。
tr -d '\r' < inputfile > outputfile
したがって、bashからは次のようになります
VAR=`echo -n $CUSTOMER | tr -d '\r'`
さらに処理する前に dos2unixを呼び出します。exp.csv
を使用してこれをよく行いますtr
。CR 文字は 8 進数で 013 です。
tr -d '\013' < $FILE
だからあなたのループでは、それはちょうど
for CUSTOMER in `tr -d '\013' < exp.csv`
ファイルに対する dos2unix コマンド