Questions tagged «pipe»

管道或命名管道是POSIX标准的一项功能,该功能允许单独的进程彼此通信,而无需明确设计为可以协同工作。



2
为什么需要xargs?
假设我要删除目录中除名为“ notes.txt”的文件以外的所有文件。我将使用管道来执行此操作ls | grep -v "notes.txt" | xargs rm。如果第二个管道的输出是rm应该使用的输入,为什么我需要xargs? 为了进行比较,管道echo "#include <knowledge.h>" | cat > foo.c将回显的文本插入文件中,而不使用xargs。这两条管道有什么区别?
25 bash  pipe  xargs  coreutils 

5
linux管道符号“ |”有什么作用?[重复]
这个问题已经在这里有了答案: 了解如何将输入发送到Bash中的管道 (4个答案) 5年前关闭。 这是一个以相反顺序对文件夹中的文件进行排序的命令 ls | sort -r |该命令中的符号有什么作用? 我在这里真正要寻找的是针对Linux初学者的高级(易于理解)管道解释。我在Superuser上看到了有关管道的其他问题,但是没有一个问题可以用简单的术语来解释它们的作用以及它们与重定向(>或<符号)的区别。



3
使用管道将两个参数传递给命令
通常,我们只需要传递一个参数: echo abc | cat echo abc | cat some_file - echo abc | cat - some_file 有没有办法传递两个参数?就像是 {echo abc , echo xyz} | cat cat `echo abc` `echo xyz` 我可以先将结果存储在一个文件中 echo abc > file1 echo xyz > file2 cat file1 file2 但后来我可能不小心覆盖了一个文件,这是不行的。这将进入非交互式脚本。基本上,我需要一种方法将两个任意命令的结果传递给 cat 无需写入文件。 更新: 对不起,该示例掩盖了问题。而 { echo abc …

2
ls输出中文件名之间的魔术分隔符是什么?
ls(不带参数)的输出似乎以换行符分隔文件名。 证据: ls | grep foo按预期工作,grep将每个文件名视为单独的输入行。 ls > files.txt; vim files.txt ->在Vim中,每个文件在单独的行中 但在终端中,输出的结果ls将多个文件放在一行上,用空格分隔文件名以使各列对齐良好: $ ls a.txt b.txt c.txt 所以我的问题是,ls怎么做到的? 是否使用一些特殊的控制字符来“伪造”换行符?还是知道何时将其输出传递到另一个命令,并在这种情况下以不同的格式设置其输出?
20 ls  pipe  newlines 


7
整理文件和管道到grep的优点
除了方便之外,将文件编入目录并将其通过管道传递到grep还有其他优点吗?方便的是,当我从历史记录中检索以下命令时,光标位于该行的末尾,因此很容易用不同的文本修改该命令以针对同一文件进行grep。 因此,以下约定可能还有哪些其他优点: cat /var/tmp/trace.2043925204.xt | grep -in profile cat /var/tmp/trace.2043925204.xt | grep -n Profile-Main 代替: grep -in profile /var/tmp/trace.2043925204.xt grep -n Profile-Main /var/tmp/trace.2043925204.xt

3
为单个管道命令设置管道失败
我需要从非BASH脚本(即PHP脚本)执行许多管道外壳命令,如下所示: command1 | command2 | command3 因此,如果command1退出代码非零而失败,则其他命令也会失败。到目前为止,我想出的是: set -o pipefail && command1 | command2 | command3 但是,即使它在终端上运行正常,但是如果通过脚本执行,它也会产生此结果: sh:1:设置:非法选项-o pipefail

4
在Windows中,我可以在命令行中将stdout重定向到(命名的)管道吗?
有没有一种方法可以将Win32控制台中进程的标准输出重定向到命名管道?Windows中内置了命名管道,尽管它们是一个有用的概念,但我从未在命令行中使用过它们。 就是 喜欢example.exe >\\.\mypipe。(此语法可能不正确,但是您明白了。)我希望能够同时将stdout和stderr重定向到不同的管道。 我想避免使用物理文件来代替,避免处理IO速度慢,IO缓冲区,文件锁,访问权限,可用硬盘空间,覆盖决定,过分的持久性等。 另一个原因是因为传统的Windows 工具集没有像Unix那样围绕基于(文本)文件的原理进行设计。另外,如果有的话,命名管道也很难在Windows中安装。 最后,好奇的是,一个好的概念能否被很好地利用。


3
管道和UDP的Netcat / socat行为?
我想这已经接近Linux了-Netcat停止监听UDP流量-超级用户,但我还是想问一问 至于netcat的版本,我使用的是Ubuntu 11.04及其默认版本,netcat我猜是这样的openbsd: $ nc This is nc from the netcat-openbsd package. An alternative nc is available in the netcat-traditional package. usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [hostname] [port[s]] 我发现这很奇怪:第一种情况按预期工作-我在一个终端中打开UDP服务器: $ sudo nc -ul 5000 ...,然后在另一个终端中,我启动一个新的UDP客户端连接-并键入hello3次,每次输入后按Enter: $ …
16 pipe  udp  netcat  socat 


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.