如何替换第三个逗号后的字符串

How to replace the character string after the third comma

我想在第三个逗号后用“/”替换/。

[加急]

AAA,BB/B,CCC,D/D,EEE

AAA,BB/B,CCC,D”/”D,EEE

[我试过的]

cat sample.txt | awk '        
    {
        gsub( /, "/",  )
        print  , 
    }
'

使用您显示的示例,请尝试以下 awk 代码。简单的解释是,将 FSOFS 设置为 , 并在主块中将 / 替换为第 4 个字段中的 "/" 并提及 1 将打印 edited/non-edited 行。

awk 'BEGIN{FS=OFS=","} {sub("/","\"/\"",)} 1' Input_file

使用 " (\x22) 的十六进制字符代码和正则表达式的字符列表 [/] 的细微变化,您可以这样做:

awk -F, -v OFS="," '{sub(/[/]/,"\x22/\x22",)}1' file

例子Use/Output

你的情况是:

$ echo "AAA,BB/B,CCC,D/D,EEE" | awk -F, -v OFS="," '{sub(/[/]/,"\x22/\x22",)}1'
AAA,BB/B,CCC,D"/"D,EEE

没有我希望的那么优雅:

AAA,BB/B,CCC,D/D,EEE
                     >>>
                         AAA,BB/B,CCC,D"/"D,EEE


# gawk profile, created Tue May 17 02:51:22 2022

BEGIN {
         _ = substr("",\
  (__ = (_ = (_="[^,]*[,]")(_)_)(\
  OFS = FS = "[/]") "*")^sub(FS,"^&",__)^gsub("[:-~]","\"",OFS))

} ($-_)~((__)FS) ? sub(__,"&"_)*sub((_)FS, OFS) : !-_'