问题标签 [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.
batch-file - 批处理:用插入符号转义
我一直讨厌批处理,我仍然讨厌批处理,即使对于最简单的事情我更喜欢 C 或 PHP/Perl。但这一次我不能没有它,****叹气****。
我想将 echo 命令重定向到另一个命令。例如:
但我也希望能够在管道的 echo 部分使用特殊字符:
这当然没有用。所以我尝试了:
这也不起作用。然后通过反复试验,我发现:
那行得通。但作为感兴趣的程序员,我想知道为什么。为什么没有^&
工作并^^^&
做到了?
unix - 将远程文件放入hadoop而不将其复制到本地磁盘
我正在编写一个 shell 脚本,以便在生成数据后立即将它们放入 hadoop。我可以 ssh 到我的主节点,将文件复制到那里的文件夹,然后将它们放入 hadoop。我正在寻找一个 shell 命令来摆脱将文件复制到主节点上的本地磁盘。为了更好地解释我需要什么,您可以在下面找到我到目前为止的内容:
1)将文件复制到主节点的本地磁盘:
我已经使用密钥设置了 SSH 连接。因此,无需密码即可执行此操作。
2)我可以使用ssh远程执行hadoop put命令:
我正在寻找的是如何将这两个步骤通过管道/组合为一个步骤,并跳过 masterNode 本地磁盘上文件的本地副本。
谢谢
换句话说,我想以一种我可以的方式传递几个命令
perl - 如何使用 perl 为应用程序输出添加时间戳
我有一个命令行应用程序,它在运行时提供命令行输出。当我将它写入文件(例如:app >> log.txt)时,它都显示在文本文件中,就像它出现在终端中一样。我需要能够为输出加上时间戳,这样如果我让它继续运行,我就可以回来查看它何时打印。
我尝试过管道到 perl 脚本:
使用此命令:
但是日志是空的。很抱歉,我无法更具体地了解我正在运行的应用程序。
linux - Linux管道和循环
是否可以使用 Linux 管道创建循环?例如
cmd1 | 命令2 | cmd3 | '返回标准输入 cmd1'
换句话说,我想stdout
连接cmd3
回stdin
of cmd1
。
linux - 管道查找结果到 grep 以快速排除目录
我成功地使用 find 创建了当前子目录中所有文件的列表,不包括子目录“缓存”中的文件。这是我的第一段代码:
我现在希望将其通过管道传输到 grep 命令中。看起来应该很简单:
...但这是返回的结果主要来自缓存目录。我已经尝试删除 xargs 引用,但这符合您的期望,在文件名的文本上运行 grep,而不是在文件本身上运行。我的目标是在任何没有缓存内容的文件中找到“samson”。
在这种情况下,我可能会通过使用 double greps 来解决这个问题,但我很好奇为什么这个单行代码会以这种方式运行。我很想听听关于在仍然使用这两个命令的同时修改它的方法的想法(因为这样做有速度优势)。
(这是在 CentOS 5 中,顺便说一句。)
python - 将数据从 python 管道传输到外部命令
我已经阅读了 subprocess.Popen 上的所有内容,但我认为我遗漏了一些东西。
我需要能够执行一个 unix 程序,该程序从 python 脚本中创建的列表中读取数据流,并将该程序的结果写入文件。在 bash 提示符下,我一直这样做没有问题,但现在我试图从一个 python 脚本中执行此操作,该脚本在进入这个阶段之前预处理了一些二进制文件和大量数据。
让我们看一个不包括所有预处理的简单示例:
这将在 bash 中执行的方式是:
将数据输入 unix prog 的方式也很重要,我应该格式化为由空格分隔的 2 列。
任何帮助表示赞赏...
grep - 使用 grep 管道错误消息
我有一个脚本失败,因为某些文件丢失了。
运行脚本并将其传递给 grep
产生以下输出:
以及具有不同文件的类似输出
我想v2.2_V3_194424_194712/output_853.root
从这个输出中提取根文件,但是这样做./adder | grep Error | grep .root
不起作用。
这是为什么?
piping - 不传输 EOT 的管道
我正在寻找一种不发送 EOT (Ctrl-D) 的管道方式,即使这些等效:
和
linux - bash 中的特殊管道/重定向
(首先我一直在寻找一个小时,所以我很确定这不是重复)
我需要编写一个执行 1 个命令、1 次的脚本,然后执行以下操作:
- 将 stdout 和 stderr 都保存到文件中(同时保持它们的正确顺序)
- 仅将 stderr 保存到变量中。
如果我有这样的文件,请详细说明第 1 点
我应该期望看到输出,然后是错误,然后是输出,然后是更多错误(因此连接是不够的)。
我最接近的是以下内容,它似乎损坏了日志文件:
bash - 管道输入到 shell 命令并保持创建的 shell 活动
我的首要程序是一个 shell 脚本。这个 shell 脚本调用了一个 C 程序,我需要将输入传递给它,最终 C 程序将创建一个 shell。
但是,当我将输入通过管道传输到 shell 脚本中的 C 程序时
我无法让贝壳保持活力。只是跑步,
有效,因为我必须自己输入标准输入,并且当 my_prog 退出时,shell 会正确生成。我很确定将 ./my_prog 调用包含在 C 程序中,并编译和运行它会起作用,但我很好奇是否有更清洁的 shell 方式。
我尝试了几种在不同情况下使用cat file1 | ./my_prog
和使用的组合&
,但都没有成功。
谢谢!