2016-10-06 5 views
1

ユーザーは、スクリーンスクレイプを使用してExcelスプレッドシートを作成するパイプ区切りテキストファイルを受け取るため、データが混乱します。それは全体を通してランダムな^M (carriage returns)<96> (windows en dash)でいっぱいで、インポートが不完全になります。saskにインポートする前にstray^Mと<96>をテキストファイルから削除するには

私はdos2unixを試しましたが、変換に問題があるというエラーが表示されます。私は、このサイトで見つけたこのソリューションを使用して、すべての^Mを削除:

tr -d '\r' <infile> outfile 

<96>文字が残っています。これらのダッシュに対応する'/r'は何ですか?それとももっと良い解決策がありますか?私は実際には、「悪い」ダッシュをできるだけ「良い」ダッシュに置き換えたいと考えています。

+0

テキストファイルのサンプルと出力を共有できますか? –

答えて

0

代わりに、SASを使用してファイルをクリーンアップするのはなぜですか?あなたの行が32,767文字よりも短い場合、それは簡単です。

data _null_; 
    infile 'input-file' termstr=LF ; 
    file 'output-file' termstr=LF ; 
    input; 
    _infile_=translate(compress(_infile_,'0D'x),'-','96'x); 
    put _infile_; 
run; 

行が長い場合は、フィールドごとにデータフィールドを読み取り、代わりに修正することができます。

関連する問題