2016-10-06 37 views
1

我收到用戶使用屏幕截圖填充Excel電子表格的管道分隔文本文件,因此數據很混亂。它隨機填寫^M (carriage returns)<96> (windows en dash),導致導入不完整。如何在導入到sas之前從文本文件中移除^ 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; 

如果行更長,您可以通過字段讀取數據字段並修改它。