Bash 在shell脚本中使用sed替换文件中的值

Bash 在shell脚本中使用sed替换文件中的值,bash,shell,sed,Bash,Shell,Sed,请帮助我创建一个shell脚本,用sed搜索所有行并替换文件中的格式 示例-['abc,xyz']更改为['abc','xyz']给您: [user@myserver ~]$ echo "['abc,xyz']" | sed "s:,:\',\':g" ['abc','xyz'] 此处冒号:用作分隔符,反斜杠\用作sed命令中的转义字符。这可能适用于GNU sed: sed -E ':a;s/(\[('\''[^'\'',]*'\'',)*'\''[^'\'',]*),([^]]*'\''\]

请帮助我创建一个shell脚本,用sed搜索所有行并替换文件中的格式

示例-['abc,xyz']更改为['abc','xyz']

给您:

[user@myserver ~]$ echo "['abc,xyz']" | sed "s:,:\',\':g"
['abc','xyz']

此处冒号:用作分隔符,反斜杠\用作sed命令中的转义字符。

这可能适用于GNU sed:

sed -E ':a;s/(\[('\''[^'\'',]*'\'',)*'\''[^'\'',]*),([^]]*'\''\])/\1'\'','\''\3/;ta' file

如果你问的是家庭作业,你应该真诚地尝试自己解决问题,首先在问题中加入你的代码。2询问您现有实现的具体问题,包括您收到的任何错误。3.承认问题是家庭作业。4了解你的学校政策。5永远不要使用你不懂的代码。请参阅:如果输入是纯文本、逗号较多、文本['abc,123']带有更多逗号,以及['antelope,zebra']也有,会发生什么情况?是否应映射包含123的方括号,以及是否应映射提及antelope和zebra的方括号?仅仅知道一个示例输入和输出是不够的。或者,更确切地说,它鼓励回答echo['abc,xyz']| sed/\['abc,xyz']/['abc','xyz']/',这可能不是您想要的答案,尽管它符合您的要求。聪明的报价也很重要吗?替换文本是否应该是['abc','xyz']?当它们出现在双引号内时,没有必要转义单引号,尽管我认为这没有什么害处。请注意,/是斜杠,\是反斜杠或Unicode语言中的“solidus”和“reverse solidus”。您的代码可以处理示例数据,但会损坏许多不应损坏的合理替代输入。例如echo Hi,I'm happy,and Delirish不应该被触动没有方括号,没有单引号,但是你的代码映射了逗号。我相信他的要求是管理这个给定的场景,所以答案有点中肯。但是谢谢你的投入。