我有一个字符串,我需要为子字符串添加引号。我怎么能在shell脚本中做到这一点?
字符串是
Database.Procedure(Frequency,P1,P2,P3)
我必须在频率附近添加单引号。
Database.Procedure('Frequency',P1,P2,P3)
对于所有此类输入,这应该是通用的。请帮忙
由于
答案 0 :(得分:2)
这样的作品有效:sed "s/Frequency/\'Frequency\'/"
$ echo "Database.Procedure(Frequency,P1,P2,P3)" | sed "s/Frequency/\'Frequency\'/"
Database.Procedure('Frequency',P1,P2,P3)
这是一个用引号改变同一个词Frequency
的问题。由于'
是保留字,我们必须使用\'
转义它。
您的评论:
但问题是频率可以是'DAILY','WEEKLY', 'MONTHLY'等我该怎么做?
如果你想使它更通用,那么
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
答案 1 :(得分:-1)
尝试使用转义字符
Database.Procedure(\'Frequency\',P1,P2,P3)