我有一个名为string1的字符串,它可以包含双引号。
我正在通过sed回显字符串以拉出puntuation,然后发送到array以计算某些单词。问题是我不能通过双引号将变量回送给sed。
我正在我们的文件系统中搜寻使用ftp命令的文件。
我把每个文件都改成“ftp”

STRING1=`grep -i ftp $filename`

如果您回送$string1,这就是输出(仅举一个例子)
myserver> echo "Your file `basename $1` is too large to e-mail. You must ftp the file to BMC tech support. \c"
    echo "Then, ftp it to ftp.bmc.com with the user name 'anonymous.' \c"
    echo "When the ftp is successful, notify technical support by phone (800-537-1813) or by e-mail ([email protected].)"

那我有这个密码
STRING2=`echo $STRING1|sed 's/[^a-zA-Z0-9]/ /g'`

我试过重复引用$string1
STRING2=`echo "$STRING1"|sed 's/[^a-zA-Z0-9]/ /g'`

但那不管用。
单个qoutes,只是将$string1作为字符串发送给sed…所以这不起作用。
我还能在这里做什么?

最佳答案

问题在于如何开始设置STRING1。如果我正确理解你的意图,你需要写下:

STRING1="Your file `basename $1` is too large to e-mail. You must ftp the file to BMC tech support. \c
Then, ftp it to ftp.bmc.com with the user name 'anonymous.' \c
When the ftp is successful, notify technical support by phone (800-537-1813) or by e-mail ([email protected].)"

然后你可以写:
STRING2=`echo "$STRING1"|sed 's/[^a-zA-Z0-9]/ /g'`

关于linux - KSH:包含双引号的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12680278/

10-13 08:05