我有一个字符串,我需要在子字符串中添加引号。我如何在 shell 脚本中做到这一点?
字符串是
Database.Procedure(Frequency,P1,P2,P3)
我必须在频率周围添加单引号。
Database.Procedure('Frequency',P1,P2,P3)
对于所有此类输入,这应该是通用的。请帮忙
谢谢
像这样的工作:sed "s/Frequency/\'Frequency\'/"
$ echo "Database.Procedure(Frequency,P1,P2,P3)" | sed "s/Frequency/\'Frequency\'/"
Database.Procedure('Frequency',P1,P2,P3)
Frequency
这是一个用引号改变单词的问题。由于 the'
是保留字,我们必须用 . 转义它\'
。
你的评论:
但问题是频率可以是“每日”、“每周”、“每月”等。我该怎么办?
如果你想让它更通用,请执行
var="Your_name"
sed "s/$var/\'$var\'/"
例子:
$ var=Frequency
$ echo "Database.Procedure(Frequency,P1,P2,P3)" | sed "s/$var/\'$var\'/"
Database.Procedure('Frequency',P1,P2,P3)
$ var=Weekly
$ echo "Database.Procedure(Weekly,P1,P2,P3)" | sed "s/$var/\'$var\'/"
Database.Procedure('Weekly',P1,P2,P3
尝试使用转义字符
Database.Procedure(\'Frequency\',P1,P2,P3)