txtファイルがあります。
,"Hi, I am Tom",,"16"
"I3","Hi, I am Jerry","Mouse","17"
ここでファイルは UTF-8 です。私がしたいのは、引用符 ""内の内容を除いてコンマを|に置き換えることです。したがって、新しく作成されたtxtファイルは次のようになります。
|"Hi, I am Tom"||"16"
"I3"|"Hi, I am Jerry"|"Mouse"|"17"
私はsedまたはawkスクリプトについてはよくわかりませんが、これを行うために使用できると聞きました。誰でもそれがどのように完了したのか教えてもらえますか?
ベストアンサー1
Edのコメントに従い、カンマの周りのスペースを編集すると
$ cat text.csv
,"Hi, I am Tom",,"16"
"I3","Hi, I am Jerry","Mouse","17"
$ csvformat -D '|' text.csv
|Hi, I am Tom||16
I3|Hi, I am Jerry|Mouse|17
csvformat
csvkitの一部です。
https://csvkit.readthedocs.io/en/1.0.2/scripts/csvformat.html
CSVモジュールには、Rubyなど、ユーザーがインストールした可能性がある他の言語が付属しています。
$ ruby -rcsv -e 'CSV.foreach(ARGV.shift) {|row| puts CSV.generate_line(row, col_sep: "|")}' text.csv
|Hi, I am Tom||16
I3|Hi, I am Jerry|Mouse|17