我是否需要在此MATLAB字符串中转义字符?

时间:2010-01-11 21:49:51

标签: bash matlab string system escaping

我想在MATLAB中调用以下bash命令:

grep "Up to" ~/test_linux/vision1.1/log | awk '{print $7}'

我在MATLAB中使用system(),但结果却有错误:

>> [status string]=system('grep "Up to" ~/test_linux/vision1.1/log | awk '{print $7}' ');     
??? [status string]=system('grep "Up to" ~/test_linux/vision1.1/log | awk '{print $7}' ');  

Error: Unbalanced or unexpected parenthesis or bracket.

我是否需要在bash命令中将某些特殊字符作为字符串在MATLAB中转义?

2 个答案:

答案 0 :(得分:13)

这应该有效:

[status string]=system('grep "Up to" ~/test_linux/vision1.1/log | awk ''{print $7}'' ');

如果您希望它在字符串中显示为字符,则必须使用另一个'转义'。关于处理strings in MATLAB'是唯一具有特殊含义的字符(它开始和结束字符串),因此它是唯一需要转义的字符。

警告:某些函数可能以不同的方式解释其字符串参数,因此需要以不同方式转义某些字符。这些要求将出现在每个功能的文档中。我最喜欢的几种类型的功能:

答案 1 :(得分:2)

您需要转义命令字符串中的单引号。否则,MATLAB会将它们解释为字符串的结尾,然后分解它后面的内容。