假设我有:
cat file
"Field 1, Line 1",Field 2,"Field 3, Line 1"
"Field 1, Line 2",Field 2,"Field 3, Line 2"
与米勒,我想生产:
"Field 1, Line 1"
"Field 2"
"Field 3, Line 1"
"Field 1, Line 2"
"Field 2"
"Field 3, Line 2"
我试过这个:
mlr --csv -N --ofs lf --quote-all cat file
它不产生输出。
作为一种变通方法,我可以这样做:
mlr --csv -N --ofs pipe --quote-all cat file | sed 's/"\|"/"\n"/g'
或者使用ruby:
ruby -r csv -e 'CSV.parse($<.read).flatten.each{|r| puts [r].to_csv(force_quotes: true)}' file
但它确实觉得我应该能够只看一个csv文件一个字段的时间(并忽略记录)与米勒?
2条答案
按热度按时间btqmn9zl1#
您可以重塑和枚举:
然后剪切第一列(在本例中,
cut -f b
保留第二列b
):获得:
wd2eg0qa2#
虽然米勒对
--ifs
和--ofs
的CSV格式处理不同,但--ofs lf
不输出任何错误消息感觉像是一个bug。作为一种变通方法,我将输入记录拆分为多个单字段记录: