Julia语言:无法识别run()中的引号?管道错误

Julia语言:无法识别run()中的引号?管道错误,julia,Julia,Julia在使用run()时忽略引号,例如: 忽略引号,这是必需的 \" 不起作用 编辑:错误与管道有关: cat: |: No such file or directory cat: sed: No such file or directory cat: s/blah/hi/: No such file or directory ERROR: failed process: Process(`cat file.txt | sed s/blah/hi/`, ProcessExited(1))

Julia在使用run()时忽略引号,例如:

忽略引号,这是必需的

\"
不起作用

编辑:错误与管道有关:

cat: |: No such file or directory
cat: sed: No such file or directory
cat: s/blah/hi/: No such file or directory
ERROR: failed process: Process(`cat file.txt | sed s/blah/hi/`, ProcessExited(1)) [1]
 in pipeline_error at process.jl:502
 in run at ./process.jl:479

|
不会在Julia backtick语法中创建管道。而是使用四个参数调用
cat
程序:

  • file.txt
  • |
  • sed
  • s/blah/hi/
由于这些文件不可能全部存在,
cat
终止时出错。请注意,
sed
不需要在最后一个参数周围加引号。事实上,如果它确实得到引号,那么它根本不会做你想要的事情,因为程序将是一个单字符串文本。shell可以看到双引号,并将其内容作为单个参数传递给
sed
。在本例中,由于引号之间没有空格或其他字符是大多数shell所特有的,因此没有区别。要实现您的目标,您可以执行以下操作:

run(`cat file.txt` |> `sed "s/blah/hi/"`)

双引号是可选的,因为它们在shell中,因为
sed

的参数中没有空格或其他特殊字符,
|
不会在Julia backtick语法中创建管道。而是使用四个参数调用
cat
程序:

  • file.txt
  • |
  • sed
  • s/blah/hi/
由于这些文件不可能全部存在,
cat
终止时出错。请注意,
sed
不需要在最后一个参数周围加引号。事实上,如果它确实得到引号,那么它根本不会做你想要的事情,因为程序将是一个单字符串文本。shell可以看到双引号,并将其内容作为单个参数传递给
sed
。在本例中,由于引号之间没有空格或其他字符是大多数shell所特有的,因此没有区别。要实现您的目标,您可以执行以下操作:

run(`cat file.txt` |> `sed "s/blah/hi/"`)

双引号是可选的,因为它们在shell中,因为
sed

的参数中没有空格或其他特殊字符,您使用的是哪个版本的Julia?我使用的是Julia版本0.3.7运行第一个代码块时会发生什么?@AlexA。啊,一定是管道出错了吧?我的错误是:cat:|:没有这样的文件或目录cat:sed:没有这样的文件或目录cat:s/blah/hi/:没有这样的文件或目录错误:失败的进程:进程(
cat file.txt | sed s/blah/hi/
,ProcessExited(1))[1]管道中的错误在进程中。jl:502在运行于./process。jl:479您应该将错误添加到帖子中,这真的很有帮助。你使用的是什么版本的Julia?我使用的是Julia版本0.3.7当你运行第一个代码块时会发生什么?@AlexA。啊,一定是管道出错了吧?我的错误是:cat:|:没有这样的文件或目录cat:sed:没有这样的文件或目录cat:s/blah/hi/:没有这样的文件或目录错误:失败的进程:进程(
cat file.txt | sed s/blah/hi/
,ProcessExited(1))[1]管道中的错误在进程中。jl:502在运行于./process。jl:479您应该将错误添加到帖子中,这真的很有帮助。@AlexA。朱莉娅的文件。@rickhg12hs:啊,我很笨。我应该看看。谢谢你的链接,我很感激。@AlexA。朱莉娅的文件。@rickhg12hs:啊,我很笨。我应该看看。谢谢你的链接,我很感激。