问题标签 [piping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8057 浏览

batch-file - 批处理:用插入符号转义

我一直讨厌批处理,我仍然讨厌批处理,即使对于最简单的事情我更喜欢 C 或 PHP/Perl。但这一次我不能没有它,****叹气****。

我想将 echo 命令重定向到另一个命令。例如:

但我也希望能够在管道的 echo 部分使用特殊字符:

这当然没有用。所以我尝试了:

这也不起作用。然后通过反复试验,我发现:

那行得通。但作为感兴趣的程序员,我想知道为什么。为什么没有^&工作并^^^&做到了?

0 投票
5 回答
50499 浏览

unix - 将远程文件放入hadoop而不将其复制到本地磁盘

我正在编写一个 shell 脚本,以便在生成数据后立即将它们放入 hadoop。我可以 ssh 到我的主节点,将文件复制到那里的文件夹,然后将它们放入 hadoop。我正在寻找一个 shell 命令来摆脱将文件复制到主节点上的本地磁盘。为了更好地解释我需要什么,您可以在下面找到我到目前为止的内容:

1)将文件复制到主节点的本地磁盘:

我已经使用密钥设置了 SSH 连接。因此,无需密码即可执行此操作。

2)我可以使用ssh远程执行hadoop put命令:

我正在寻找的是如何将这两个步骤通过管道/组合为一个步骤,并跳过 masterNode 本地磁盘上文件的本地副本。

谢谢

换句话说,我想以一种我可以的方式传递几个命令

0 投票
2 回答
1227 浏览

perl - 如何使用 perl 为应用程序输出添加时间戳

我有一个命令行应用程序,它在运行时提供命令行输出。当我将它写入文件(例如:app >> log.txt)时,它都显示在文本文件中,就像它出现在终端中一样。我需要能够为输出加上时间戳,这样如果我让它继续运行,我就可以回来查看它何时打印。

我尝试过管道到 perl 脚本:

使用此命令:

但是日志是空的。很抱歉,我无法更具体地了解我正在运行的应用程序。

0 投票
1 回答
322 浏览

linux - Linux管道和循环

是否可以使用 Linux 管道创建循环?例如

cmd1 | 命令2 | cmd3 | '返回标准输入 cmd1'

换句话说,我想stdout连接cmd3stdinof cmd1

0 投票
3 回答
13974 浏览

linux - 管道查找结果到 grep 以快速排除目录

我成功地使用 find 创建了当前子目录中所有文件的列表,不包括子目录“缓存”中的文件。这是我的第一段代码:

我现在希望将其通过管道传输到 grep 命令中。看起来应该很简单:

...但这是返回的结果主要来自缓存目录。我已经尝试删除 xargs 引用,但这符合您的期望,在文件名的文本上运行 grep,而不是在文件本身上运行。我的目标是在任何没有缓存内容的文件中找到“samson”。

在这种情况下,我可能会通过使用 double greps 来解决这个问题,但我很好奇为什么这个单行代码会以这种方式运行。我很想听听关于在仍然使用这两个命令的同时修改它的方法的想法(因为这样做有速度优势)。

(这是在 CentOS 5 中,顺便说一句。)

0 投票
3 回答
5364 浏览

python - 将数据从 python 管道传输到外部命令

我已经阅读了 subprocess.Popen 上的所有内容,但我认为我遗漏了一些东西。

我需要能够执行一个 unix 程序,该程序从 python 脚本中创建的列表中读取数据流,并将该程序的结果写入文件。在 bash 提示符下,我一直这样做没有问题,但现在我试图从一个 python 脚本中执行此操作,该脚本在进入这个阶段之前预处理了一些二进制文件和大量数据。

让我们看一个不包括所有预处理的简单示例:

这将在 bash 中执行的方式是:

将数据输入 unix prog 的方式也很重要,我应该格式化为由空格分隔的 2 列。

任何帮助表示赞赏...

0 投票
2 回答
6495 浏览

grep - 使用 grep 管道错误消息

我有一个脚本失败,因为某些文件丢失了。

运行脚本并将其传递给 grep

产生以下输出:

以及具有不同文件的类似输出

我想v2.2_V3_194424_194712/output_853.root从这个输出中提取根文件,但是这样做./adder | grep Error | grep .root不起作用。

这是为什么?

0 投票
1 回答
124 浏览

piping - 不传输 EOT 的管道

我正在寻找一种不发送 EOT (Ctrl-D) 的管道方式,即使这些等效:

0 投票
1 回答
135 浏览

linux - bash 中的特殊管道/重定向

(首先我一直在寻找一个小时,所以我很确定这不是重复)

我需要编写一个执行 1 个命令、1 次的脚本,然后执行以下操作:

  1. 将 stdout 和 stderr 都保存到文件中(同时保持它们的正确顺序)
  2. 仅将 stderr 保存到变量中。

如果我有这样的文件,请详细说明第 1 点

我应该期望看到输出,然后是错误,然后是输出,然后是更多错误(因此连接是不够的)。

我最接近的是以下内容,它似乎损坏了日志文件:

0 投票
2 回答
1334 浏览

bash - 管道输入到 shell 命令并保持创建的 shell 活动

我的首要程序是一个 shell 脚本。这个 shell 脚本调用了一个 C 程序,我需要将输入传递给它,最终 C 程序将创建一个 shell。

但是,当我将输入通过管道传输到 shell 脚本中的 C 程序时

我无法让贝壳保持活力。只是跑步,

有效,因为我必须自己输入标准输入,并且当 my_prog 退出时,shell 会正确生成。我很确定将 ./my_prog 调用包含在 C 程序中,并编译和运行它会起作用,但我很好奇是否有更清洁的 shell 方式。

我尝试了几种在不同情况下使用cat file1 | ./my_prog和使用的组合&,但都没有成功。

谢谢!