Questions tagged «pipe»

Unix管道连接两个进程的文件描述符。使用在<unistd.h>中声明的POSIX pipe()函数创建管道。外壳程序使用“ |”在进程之间提供管道创建。

5
测量外壳中的管道吞吐量
有一个shell命令,它允许您测量数据通过数据的速度,因此您可以测量管道中命令输出的速度。所以代替: $ somecommand | anothercommand 您可以执行以下操作: $ somecommand | ??? | anothercommand 我认为吞吐量统计信息(字节/秒)会打印到stderr。但是我无法终生记得那个命令。


4
如何调用vim编辑器并将管道输出到bash
有时我需要编写文本,然后将其通过管道传递到另一个命令中。我通常的工作流程如下: vim # I edit and save my file as file.txt cat file.txt | pandoc -o file.pdf # pandoc is an example rm file.txt 我觉得这很麻烦,并试图学习bash脚本,我想通过编写一个命令来触发该操作,从而简化该过程,该命令将打开编辑器,当编辑器关闭时,将编辑器的输出发送到stdout。这样我就可以将命令运行为quickedit | pandoc -o file.pdf。 我不确定这将如何工作。我已经编写了一个函数,可以按照上面的确切工作流程以及一些附加操作来自动执行此操作。它生成一个随机字符串作为文件名,并在调用函数时将其传递给vim。当用户通过保存文件退出vim时,该函数将文件打印到控制台,然后删除该文件。 function quickedit { filename="$(cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-f0-9' | head -c 32)" vim $filename cat $filename rm …
34 vim  pipe  stdout 

2
将数据管道传输到进程的标准输入而不会导致EOF之后
我有一个启动用户交互外壳的可执行文件。我想在启动Shell时首先注入一些命令,然后允许用户进行交互式会话。我可以使用以下命令轻松完成此操作echo: echo "command 1\ncommand 2\ncommand3" | ./shell_executable 这几乎可行。问题在于,在回显我的命令后,正在馈送进程的stdin的echo命令会击中EOF。此EOF导致外壳程序立即终止(就像您在外壳程序中按Ctrl + D一样)。 有没有一种方法可以将这些命令注入到stdin中,而不会在之后引起EOF?

14
什么是将命令组合在一起的好例子?
如果您正在帮助某人在命令行上学习管道的概念,那么您将使用哪个示例?实际出现的示例如下: cat whatever.txt | less 我觉得那不是最好的例子,也就是说,因为只有一步之遥。什么是好的,但基本的使用|? 理想情况下,我将展示的示例将使用本身具有输出的程序,这些输出可以独立运行,然后通过管道显示在一起。

6
如何将ls传送到grep,并删除grep过滤的文件?
我想删除主文件中的某些程序包,但是文件名太长(google-chrome-stable_current_i386.deb)。因此,我决定使用命令ls|grep chrome|rm将文件传输到grep,以过滤出chrome文件,然后将其删除。它没有用,所以我想看看我该怎么做。
33 grep  pipe  ls  rm 

1
对并发写入命名管道的保证是什么?
例如,我创建了一个命名管道,如下所示: mknod myPipe p 我从某些过程(例如某些服务器)中读取了该消息。出于示例目的,我使用tail: tail -f myPipe 如果多个客户端进程向其中写入了一些消息(例如echo "msg" &gt;&gt; myPipe,,则很有可能消息被交错,如下所示: &lt;beginning of message1&gt;&lt;message2&gt;&lt;ending of message1&gt; 还是写入命名管道的过程是原子的?
32 linux  pipe 

4
查找-exec + vs查找| xargs:选择哪一个?
我了解-exec可以+选择模拟的行为xargs。在任何情况下,您都喜欢一种形式而不是另一种形式吗? 如果只是避免使用管道,我个人倾向于使用第一种形式。我确定肯定开发人员find必须进行适当的优化。我对么?
32 bash  find  pipe  xargs 


3
如何“追踪并跟踪”文件?
正在按顺序下载文件wget。 如果我开始使用cat myfile.tar.bz2 | tar -xj来解包,它可能会正确解包,或者失败,并显示“意外的EOF”,具体取决于哪种速度更快。 如何“跟踪和跟踪”文件,即将文件内容输出到stdout,但不退出EOF,而是继续订阅该文件并继续输出数据的新部分,仅当文件被关闭时退出作家,并且在N秒内未重新打开。 我已经基于@arielCo的答案创建了一个脚本cat_and_follow,当不再打开该文件以进行写入时,该脚本也会终止。tail
31 files  pipe  cat  tail  open-files 

3
我可以将pgrep与kill链接吗?
我注意到这|是用来将第一个命令的结果发送给另一个命令的。我想杀死所有与名称匹配的进程。 pgrep通常这样做: $ pgrep name 5089 5105 而且似乎有多个参数可以使用kill: sudo kill 5089 5105 但这是错误的: pgrep name | kill 那么如何正确地做呢?
31 shell  pipe  arguments 

3
五彩的Grep
我正在尝试让每个grep命令以不同的颜色突出显示它的结果。我可以用这样的一行手动进行操作: ls -l GREP_COLORS='mt=01;32' grep c | GREP_COLORS='mt=01;31' grep o | GREP_COLORS='mt=01;34' grep n | GREP_COLORS='mt=01;36' grep f 每个c字符将以绿色突出显示,每个o字符将以红色突出显示,等等。 为了使该示例正常工作,您需要确保始终使用 --color=alwaysgrep命令。我已经在我的.bashrc grep中设置了它,所以它将始终具有颜色: export GREP_OPTIONS='--color=always' 我要完成的工作是用别名包装此功能,这样我每次grep都可以调用并具有不同的GREP_COLORS值。我了解为每个新的管道grep考虑多个外壳的问题,并且我试图通过创建一些文件(每种颜色一个)来解决这个问题,以表明它们已被使用。 我做了一些尝试,但奇怪的是,这似乎是“最好的”方法。我在我的.bashrc: alias mg="mygrep" mygrep(){ # define possible colors COLORS=("01;32" "01;31" "01;34" "01;36") COUNTER=0 NUM=0 # as long as the color has already been used, keep …
30 bash  shell  grep  pipe  bashrc 


3
是什么使Unix进程死于管道中断?
这是我想到的一些选项,不确定哪个是正确的。 从管道读取I / O错误。 写入管道另一端的进程因失败而终止。 可以写入管道的所有进程均已将其关闭。 管道的写缓冲区已满。 对等方已关闭双工管道的另一方向。 写入失败,因为没有可以从管道读取的进程。 系统调用返回了EPIPE错误,并且没有安装错误处理程序。
30 pipe 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.