2014-12-24 63 views
0

我有,我想一個CSV文件:sed命令來清洗CSV不工作

Replace all & instances with & 
Remove the first (header) line 
Change all semicolons to $$$ 
Change all "$$$" instances into ";" 
Remove all " characters 

sed命令這樣做看起來是這樣的:

sed 's/\&/\&/g' BX-Book-Ratings:| sed -e '1d' |sed 's/;/$$$/g' | sed 's/"$$$"/";"/g' | sed 's/"//g' > corrected_rating 

但它不「T工作時,我把它放在ClouderaVM的終端...

它給我的錯誤:sed: can't read BX-Book-Ratings:: No such file or directory

我在桌面和根文件夾中放置了BX-Book-Ratings.csv的副本,並嘗試將直接位置放在sed命令中。我究竟做錯了什麼?

我收到錯誤:line sed: -e expression #1, char 14: unknown option to s'`

回答

0

爲什麼你使用這麼多的管道?怎麼樣這樣的方法:

sed 's/\&amp\;/\&/g;1d;s/;/$$$/g;s/"$$$"/";"/g;s/"//g' BX-Book-Ratings.csv > corrected_rating 

或者,如果你希望將結果保存到一個變量做這樣的:

var=$(sed 's/\&amp\;/\&/g;1d;s/;/$$$/g;s/"$$$"/";"/g;s/"//g' BX-Book-Ratings.csv) 
+0

我真的很陌生,我不習慣Bash腳本。 –

+0

你的命令工作得很好,我只是把corrected_rating.csv放在最後。 –

2

如果文件名BX-Book-Ratings.csv,那麼你需要使用的,而不是BX-Book-Ratings:在命令行。這不是sed錯誤,這是您的shell的問題。

+0

我需要cd到同一文件夾中的文件? –

+1

@MarkLang或者提供完整的文件路徑,是的。 –

+0

它仍然說sed:無法讀取BX-Book-Ratings.csv ::沒有這樣的文件或目錄 –