2012-02-27 27 views
1

winscpのファイルを追加して転送中にプレーンテキストに変換しないロジックを追加する必要があります。だから、私たちはいくつかの特殊文字(^ m)をいくつかの値で得て、私はそれらを削除したかった ここに私のコードです。Unixスクリプトでロジックを追加する必要があります。

cd $HOME_DIR 
if [ $SHELL_STEP = 'step2' ]; then 



if [ -s $DATA_DIR/$DATA_FILE.txt ]; then echo "The data file is present." cat -v new_reguest.txt $ awk '{ sub("\r$", ""); print }' new_request.txt > new_request.txt echo "Data file $DATA_FILE.txt found in $DATA_DIR directory." >> $LOG_FILE echo "" >> $LOG_FILE STATUS='good' else echo "The data file has not arrived yet." fi 

 if [ $STATUS = 'bad' ]; then 
       echo "The data file not found." 
       echo "The data file not found." >> $LOG_FILE 
       echo "" >> $LOG_FILE 
       SHELL_STEP='step5' 
     else 
       SHELL_STEP='step3' 
     fi 
fi 

私はawkコマンドを使用してみましたが、それは格好良いではないです。

をご利用ください。

+0

私はあなたがこれを探していると思う:http://stackoverflow.com/a/5446956/78845 – Johnsyweb

答えて

1

ほとんどの実装では、末尾の改行を削除するためにdos2unixまたはd2uのようなツールが提供されます。あなたがいないはあなたがsedと同じことを行うことができ、dos2unixコマンドを持っていない場合

dos2unix new_request.txt >new_request_2.txt 
mv new_request_2.txt new_request.txt 

:あなたのようなものを使用することができます

sed -i 's/\r$//' new_request.txt 

-iは、インプレース編集のためです。 sedのバージョンにそれがない場合は、上記のdos2unixコードで使用されているものと同じ一時ファイルのトリックに頼らざるを得ません。

関連する問題