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

前端之家收集整理的这篇文章主要介绍了仅使用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
原文链接:https://www.f2er.com/bash/387556.html

猜你在找的Bash相关文章