我试图用反引号从Julia里面追加一个文件
run(`cat file2 >> file1`)
Run Code Online (Sandbox Code Playgroud)
但这不起作用.似乎>>运算符无法正确解释.有没有办法用管道或其他技巧来做到这一点?
这不是从主要问题明确身体如果你想以编程方式做到这一点一般,或只是想发出一个shell命令交互方式从朱莉娅REPL内......但你的标题表明它是后者; 如果是这种情况*,只需在REPL 键入并发出shell命令即可进入shell模式;.
对于前一种情况,如果必须使用该run命令附加到文件,则使用pipeline为此提供的内置机制.阅读帮助文件,您将看到append可以提供的可选参数.例如
run(pipeline(`cat file1`; stdout="file2", append=true));
# or even
run(pipeline(`cat`; stdin="file1", stdout="file2", append=true));
Run Code Online (Sandbox Code Playgroud)
话虽如此,如果您通常以编程方式执行此操作,因为您对file1的所有操作都是从它读取的,您应该只是正常地读取和写入文件,并完全避免shell命令:
open("file1", "r") do f1;
open("file2", "a") do f2; write(f2, readstring(f1)); end
end
Run Code Online (Sandbox Code Playgroud)
这是julia特定的,更安全,独立于平台,并且提供更多信息.