替换以逗号分隔的单引号字符串

替换以逗号分隔的单引号字符串

我有如下示例数据

'1','2','3,3','4'

我正在尝试找到一个 sed 命令将其更改为以下

'1','2','NEW','4'

首先,我尝试了以下示例

1,2,3,4

这个 sed 可以工作

's/[^,]*/NEW/'3

结果

1,2,NEW,4

但我无法弄清楚如何处理下面的示例数据......

'1','2','3,3','4'

帮助?

答案1

也许最简单的解决方案是在外部使用双引号:

$ echo "'1','2','3,3','4'" | sed "s/'[^']*'/'NEW'/3"
'1','2','NEW','4'

否则,可以使用类似的序列'\''来关闭和重新打开转义文字引号周围的单引号:

$ echo "'1','2','3,3','4'" | sed 's/'\''[^'\'']*'\''/'\''NEW'\''/3'
'1','2','NEW','4'

相关内容