0

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

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

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

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

我在引号和空格上工作了一段时间,但无法弄清楚。命令的其他解决方案,例如

<<!grep...

或 RunThrough 也会有所帮助。

4

1 回答 1

1

filename参数应该是一个字符串。将表达式转换为字符串并不可靠,因为它将首先被解析,并且可能会添加或丢失空格,以及其他更改,即使函数被赋予了属性HoldAllComplete。而是使用:

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

然后:

f["file.txt"]

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

在此处输入图像描述

于 2013-09-18T06:46:48.213 回答