如何使用分配给变量的sed命令在bash中转义单引号

时间:2017-11-28 19:13:28

标签: mysql bash sed

我有一个bash脚本,它使用zcat,grep和cut从gzipped隔离的电子邮件中获取“主题”。然后,我使用echo和sed将“subject”存储在变量中,然后在mysql INSERT语句中使用该存储主题将mysject表中的“Subject”存储在mysql表中之前转义主题中的字符。

我遇到的问题是我的当前语句用单号替换单引号,我不能将单引号添加到sed的开头,因为它需要自行转义,但我读到我无法逃避单引号一个用单引号括起来的sed语句。

以下是bash脚本的相关部分

    Subject=`zcat $RCPT | grep -m2 Subject | tail -n1 | cut -d ":" -f 2`
    Subject2=`echo $Subject | sed -e 's/[^a-zA-Z0-9 ,._()+!#$?@%/-]/\\&/g; 1{$s/^$/""/}; 1!s/^/"/; $!s/$/"/'`

    mysql statement that inserts '$Subject2' in to a table

如果我将sed语句更改为用双引号括起但我不知道如何更改sed命令的后半部分,其中双引号已经存在,我认为我可以添加转义的单引号。 / p>

0 个答案:

没有答案