回答編集履歴

1

gawkのFPATを使ったやり方について追記した。

2020/08/31 09:22

投稿

hidezzz
hidezzz

スコア1248

test CHANGED
@@ -27,3 +27,35 @@
27
27
  "TEST1","TEST2","TEST3","TEST4","TEST5","TEST6"
28
28
 
29
29
  ```
30
+
31
+
32
+
33
+ ※追記
34
+
35
+ 「"」で囲まれた文字列の中には「,」が含まれていないとのことで今回は上のやり方で大丈夫ですが、
36
+
37
+ もし含まれている場合は、FSの代わりにgawkで追加された「FPAT」を使えば良さそうです。
38
+
39
+
40
+
41
+ 以下ページを参考にしました。
42
+
43
+ [GNU AWKでCSVファイルを楽々あつかう組込変数FPATと、関数のインダイレクト呼び出し (1/2):CodeZine(コードジン)](https://codezine.jp/article/detail/8323)
44
+
45
+
46
+
47
+ ```
48
+
49
+ $ cat hoge.txt
50
+
51
+ "test1,,","tes*t2","test*3","test4","t*es*t5","test6"
52
+
53
+ "TEST1,,","TEST2","TEST3","TEST4","T**EST5","TEST6"
54
+
55
+ $ gawk -v FPAT='([^,]+)|(\"[^\"]+\")' -v OFS=',' '{ gsub( "*", "", $5 ); print }' hoge.txt
56
+
57
+ "test1,,","tes*t2","test*3","test4","test5","test6"
58
+
59
+ "TEST1,,","TEST2","TEST3","TEST4","TEST5","TEST6"
60
+
61
+ ```