2017-01-25 11 views
1

私はRHEL 7を使用しています。以前は5.5で作業していました。 私たちは、mysqlでproftpによって設定された大きなFTPサーバを持っています。フォルダ名の末尾に無効な文字があります

問題は、私はフォルダ名を取り、新しいサーバに同じフォルダを作成する必要があるということです。

私は以下のようにやっている:

ls > /abc/folders.txt 

その後、私はそれは、フォルダを作成しているが、すべてのフォルダがある新しいサーバーにtxtファイルを移動し、次のスクリプト

#!/bin/bash 

N=0 
cat folders.txt | while read LINE ; do 
     N=$((N+1)) 
     mkdir /ftp/FTP/$LINE 
done 

を使用"?"最後に次のようになります。

zhl? 
heing?       zieha? 
hvejen?      ziga? 
hellgrafisk?     zinernagel? 

RHEL 5.5ではうまくいきました。どのようにそれを解決するには?

+1

を実行しているUnixライクな形式に変換することができます。行末を修正すればOKです。 –

+1

'folders.txt'の内容を確認しましたか?それはうまく見える?変数自体に無効な文字が含まれているかどうかを調べるために '$ LINE'をエコーし​​ますか? – Seth

+0

Paul - アドバイスをいただきありがとうございます - はい、そこには迷いがあります。手動で1556項目を削除することはできません。 :( セス - ファイルを何度もチェックしました - 迷子文字のみ - 何もありません。 –

答えて

2

おそらくラインの端にいくつかの非印字可能文字持って、実行します(例えばWindowsのからCRLF。):リモートマシン上

cat -A folders.txt 

を、それはあなたのスクリプト内のすべての文字を表示します。その後、あなたはおそらくfolders.txtでMS-DOS(CR + LF)行末を持っているので、あなたはそれぞれの行を読んだとき、あなたが浮遊CR文字を取得している

dos2unix folders.txt 
関連する問題