[英]sed, awk regex to replace a string
我正在像這樣的CSV文件
"EF", "12345", "Test, String", "Xyz"
,我需要將輸出
"EF", "12345", "Test$$$ String", "Xyz"
基本上我需要用$$替換逗號
您可以為此使用gnu-awk:
awk 'BEGIN{OFS=", "; FPAT="\"[^\"]+\""} {sub(/,/, "$$$", $3)} 1' file
"EF", "12345", "Test$$$ String", "Xyz"
sed ':a
s/^\(\([[:blank:]]*"[^"]*",\)*[[:blank:]]*"[^",]*\),/\1\$\$\$/
t a
' YourFile
;
內部字符串以"
分隔(因此不是最快的) "
(如果是這種情況,需要適應一下) 它也可以與sub一起使用。
awk'{sub(/ Test,/,“ Test $$$”)} 1'文件
“ EF”,“ 12345”,“ Test $$$ String”,“ Xyz”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.