1

我有一个字符串,我需要在子字符串中添加引号。我如何在 shell 脚本中做到这一点?

字符串是

Database.Procedure(Frequency,P1,P2,P3)

我必须在频率周围添加单引号。

Database.Procedure('Frequency',P1,P2,P3)

对于所有此类输入,这应该是通用的。请帮忙

谢谢

4

2 回答 2

2

像这样的工作: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
于 2013-04-29T14:33:44.843 回答
-1

尝试使用转义字符

Database.Procedure(\'Frequency\',P1,P2,P3)
于 2013-04-29T14:33:48.907 回答