2

Windows から生成されたファイルを Linux のスクリプトに貼り付ける必要があります。私のスクリプトは問題なく動作しますが、すべての行の最後に ^M 文字が表示されます。

どうすればbashで削除できますか?

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

#/bin/bash
IFS=$'\n'
for CUSTOMER in `cat exp.csv`
do
    echo $CUSTOMER
done
4

5 に答える 5

5

^M は Windows の改行 \r である必要があるため、すべての \r を削除するだけで済みます。これは、bash スクリプトから呼び出すことができる tr ツールを使用して実現できます。これはウィキペディアの記事からのものです (確認していません)。

tr -d '\r' < inputfile > outputfile

したがって、bashからは次のようになります

VAR=`echo -n $CUSTOMER | tr -d '\r'`
于 2010-06-09T13:18:41.940 に答える
5

さらに処理する前に dos2unixを呼び出します。exp.csv

于 2010-06-09T13:19:50.383 に答える
1

を使用してこれをよく行いますtr。CR 文字は 8 進数で 013 です。

tr -d '\013' < $FILE

だからあなたのループでは、それはちょうど

for CUSTOMER in `tr -d '\013' < exp.csv`
于 2010-06-09T13:20:23.173 に答える
0

ファイルに対する dos2unix コマンド

于 2010-06-09T14:37:20.243 に答える