我想要一个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
但是当我把它放在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 :(得分:2)
如果文件名为BX-Book-Ratings.csv
,则需要在命令行中使用该文件名而不是BX-Book-Ratings:
。这不是sed
错误,这是shell的问题。
答案 1 :(得分:0)
为什么要使用这么多管道?这种方法怎么样:
sed 's/\&\;/\&/g;1d;s/;/$$$/g;s/"$$$"/";"/g;s/"//g' BX-Book-Ratings.csv > corrected_rating
或者,如果您想将结果存储到变量,请执行以下操作:
var=$(sed 's/\&\;/\&/g;1d;s/;/$$$/g;s/"$$$"/";"/g;s/"//g' BX-Book-Ratings.csv)