如何双引号文本文件中的所有字段?

enr*_*ero -2 csv shell perl command-line tab-delimited

我正在寻找一种快速有效的方法来双重引用制表符分隔或逗号分隔的文本文件中的所有字段.

理想情况下,这可以是我可以从命令行运行的Perl单行程,但我对任何类型的解决方案都持开放态度.

amo*_*mon 6

用途Text::CSV:

perl -MText::CSV -e'
  my $c = Text::CSV->new({always_quote => 1, binary => 1, eol => "\n"}) or die;
  $c->print(\*STDOUT, $_) while $_ = $c->getline(\*ARGV)' <<'END'
foo,bar, baz qux,quux
apple,"orange",spam, eggs
END
Run Code Online (Sandbox Code Playgroud)

输出:

"foo","bar"," baz qux","quux"
"apple","orange","spam"," eggs"
Run Code Online (Sandbox Code Playgroud)

always_quote选项是这里最重要的一个.