我有一个CSV文件
Brand,Type,Color Porsche,Sport,Red BMW,Coupe,Blue
我想加上引号,这样就可以了:
"Brand","Type","Color" "Porsche","Sport","Red" "BMW","Coupe","Blue"
做这件事最快的方法是什么?我将在cronjob中实现它。
xmakbtuz1#
使用sed:
sed -e 's/^\|$/"/g' -e 's/,/","/g' input
332nm8kg2#
使用带有CSV库的语言来处理CSV数据通常更简洁:
ruby -rcsv -ne 'puts CSV.generate_line(CSV.parse_line($_), :force_quotes=>true)'
g6baxovj3#
这可能对你有用(GNU sed):
sed -r 's/[^,]+/"&"/g' file
说明了"和转义字符的存在。
"
sed -E 's/[^\,"]*(("|[\].)[^"\,]*)*/"&"/g' file
apeeds0o4#
awk:
awk
awk '{gsub(/[^,]+/,"\"&\"")}1' file.csv
4条答案
按热度按时间xmakbtuz1#
使用sed:
332nm8kg2#
使用带有CSV库的语言来处理CSV数据通常更简洁:
g6baxovj3#
这可能对你有用(GNU sed):
说明了
"
和转义字符的存在。apeeds0o4#
awk
: