看板 Ruby 關於我們 聯絡資訊
有一筆資料是長這樣 cat input 95,1,997,瑞文氏圖形推理測驗,28,台灣區,XX,54,XXXXXXXXXXXXXXXXXXX,2008-1-1,1 我想以用一行指令就把每個欄位都加上雙引號,但是行首跟行尾要怎麼表示? ruby -pe 'gsub(/,/, "\",\"") ' < input > output cat output 95","1","997","瑞文氏圖形推理測驗","28","台灣區","XX","54","XXXXXXXXXXXXXXXXXXX","2008-1-1","1 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.17.173.193
godfat:這樣可以嗎?gsub(/([^,]+)/, '"\1"') 05/06 16:30
itucson:我大概知道為什麼了,因為utf8中文,輸出變亂碼 05/06 16:46
godfat:我試是正常的,也可以 /([^,]+)/u 試試 05/06 17:11
adrianshum:如果有一格是 empty 就不行了吧: 95,1,,,28,台灣 .... 05/06 17:32
godfat:還是乾脆照原本的方式,前後補 " 就好了? 05/06 17:49
itucson:我的真的不行 >< 不曉得為什麼,ruby -pe 'gsub...' 這樣? 05/06 20:18
itucson:那就不要再傷腦筋這個好了,但還是很感謝版大,真是熱心 05/06 20:20
ebs:試試 ruby -pe "gsub(/([^,\n]+)/, "\'\"\\1\"\'")" 05/06 21:30