在Mathematica中运行外部命令时,如何同时使用外部和内部变量

时间:2013-09-14 08:48:24

标签: bash wolfram-mathematica

我想在Linux服务器上提取Mathematica中的文本。

Import["!grep 'keyword' filename","Text"]

的工作原理。但是,理想情况下我想使它成为一个函数,然后文件名将被读作Mathematica内部变量而不是直接输入。我想它看起来像这样

f[filename_]:=Import["!grep 'keyword' filename","Text"]

我在引号和空格上工作了一段时间,但无法理解。其他解决方案,如

<<!grep...

或RunThrough也会有所帮助。

1 个答案:

答案 0 :(得分:1)

filename参数应该是String。将表达式转换为String是不健壮的,因为它将首先被解析,并且可以添加或丢失空格以及其他更改,即使函数被赋予属性HoldAllComplete。而是使用:

f[filename_String] := Import["!grep 'keyword' " <> filename, "Text"]

然后:

f["file.txt"]

尝试在正确的Stack Exchange网站上询问您未来的问题:

enter image description here