仅使用bash/standard Linux命令,在字符串中单行和双引号

我正在寻找一些可以如下转换字符串的东西,只使用bash / standard Linux命令:

>字符串周围的单引号应该被删除
>应该删除字符串周围的双引号
>未引用的字符串应该保持不变
>具有无与伦比的周边报价的字符串应保持不变
>不要包围字符串的单引号应该保留
>不要包围字符串的双引号应该保留

例如:

“食物”应该成为食物
>“食物”应该成为食物
食物应该保持不变
>“食物”应该保持不变
>“食物”应该保持不变
福尔多应该成为福音
>“Fo’od”应该成为Fo’od
Fo’od应该保持不变
“Fo”od“应该成为Fo”od
>“Fo”od“应该成为Fo”od
Fo“od应该保持不变

谢谢!

这应该做到:
sed "s/^\([\"']\)\(.*\)\1\$/\2/g" in.txt

其中in.txt是:

"Fo'od'
'Food'
"Food"
"Fo"od'
Food
'Food"
"Food'
'Fo'od'
"Fo'od"
Fo'od
'Fo"od'
"Fo"od"
Fo"od

而expected.txt是:

"Fo'od'
Food
Food
"Fo"od'
Food
'Food"
"Food'
Fo'od
Fo'od
Fo'od
Fo"od
Fo"od
Fo"od

您可以检查它们是否匹配:

diff -s <(sed "s/^\([\"']\)\(.*\)\1\$/\2/g" in.txt) expected.txt

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...