Questions tagged «pipe»

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

5
使用从grep到更少的管道时获得彩色结果
我经常使用grep的--colour选项,但我也经常减少使用。如何将grep结果减少到更少的程度,并且仍然保留着色。(或者这可能吗?) grep "search-string" -R * --colour | less 编辑: 我正在寻找直接的解决方案或与此等效的任何方法。
246 colors  grep  pipe  less 

6
如何将less的当前内容保存到文件中?
如果已将命令的结果传递到less,然后决定将内容保存到文件中,这可能吗? 我尝试a在缓冲区的末尾设置一个标记,然后返回到顶部并|avi用于将全部内容发送到vi,但这是行不通的。
91 bash  pipe  less 

4
如何将命令输出传递给其他命令?
例: ls | echo什么都不打印(实际上是空白行)。我希望它能打印文件列表。 ls | grep 'foo'另一方面,可以按预期工作(打印名称中带有'foo'的文件)。 在这些情况下,我的工作类似于: ls | while read OUT; do echo $OUT; done但这很麻烦。 为什么管道只能与某些命令一起使用,而不能与其他命令一起使用?如何解决这个问题?
83 bash  pipe 

4
为什么通过gzip传递'dd'比直接复制要快得多?
我想通过100 Mbit / s的线路备份从网络中的计算机到同一网络中的另一台计算机的路径。为此,我做了 dd if=/local/path of=/remote/path/in/local/network/backup.img 这给了我一个非常低的网络传输速度,大约50至100 kB / s,这将是永远的。因此,我停了下来,决定尝试动态地将其压缩,以使其更小,从而减少转移的金额。所以我做了 dd if=/local/path | gzip > /remote/path/in/local/network/backup.img.gz 但是现在我得到了大约1 MB / s的网络传输速度,所以速度提高了10到20倍。注意到这一点之后,我在几个路径和文件上对此进行了测试,并且始终保持相同。 为什么dd通过管道gzip传输还会将传输速率提高很多,而不是仅将流的字节长度减少很多?我原本希望传输速率甚至会有小幅下降,这是由于压缩时CPU消耗较高,但是现在我得到了双倍的收益。不是说我不开心,而是想知道。;)
79 backup  performance  dd  pipe  gzip 

7
cURL:重定向时如何抑制奇怪的输出?
我正在尝试stderr仅从bash shell 打印cURL请求(发送到)的详细部分。 但是当我这样重定向时stdout: curl -v http://somehost/somepage > /dev/null 某种结果表出现在输出的中间,显示为stderr: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 紧随其后的是: { [data not shown] 118 592 0 592 0 …

5
如何在Linux下对管道进行速率限制?
是否可以使用过滤器对Linux上的管道进行速率限制?如果存在,请称之为速率限制,我希望能够在终端中输入类似 cat /dev/urandom | rate-limit 3 -k | foo 为了以3 KB / s的速率向foo的标准输入发送随机字节流。
63 linux  pipe 

3
管道连接至T形时保留颜色
ls -l --color=auto | tee output.log 没有管道/三通,它是彩色的。如何使它在使用时保持彩色tee(只能在屏幕上彩色,我不在乎日志中的颜色)。
62 pipe  tee 

8
关于“无用的猫”的一般共识是什么?
当我管道多个unix命令,如grep,sed,tr等时,我倾向于使用cat指定正在处理的输入文件。所以像cat file | grep ... | awk ... | sed ...。 但是最近在我的答案留下了几条评论,表明这是对猫的无用之后,我想我会问这里的问题。 我查阅了这个问题,并且看到了维基百科关于UUOC和无用猫奖的文章,在我看来,所提出的论点都是从效率的角度出发的。 我在这里遇到的最接近的问题就是这个问题:给猫打电话是否浪费? - 但这不是我要问的。 我猜UUOC阵营的建议是使用cmd1 args < file | cmd2 args | cmd3 ..或者命令是否有选项从文件读取然后传入文件作为参数。 但对我cat file | cmd1 ... | cmd2来说,阅读和理解似乎更容易。我不必记住将输入文件发送到不同命令的不同方式,并且该过程从左向右逻辑流动。首先输入,然后是第一个进程......依此类推。 我无法理解对猫的无用使用有何争论?我明白,如果我正在运行一个每2秒运行一次并执行大量处理的cron作业,那么在这种情况下,cat可能会浪费。但是否则对使用猫的一般共识是什么?
39 command-line  unix  pipe  cat 

7
Bash:创建匿名FIFO
我们都知道mkfifo管道。第一个创建一个命名管道,因此必须选择一个名称,最有可能使用mktemp,后来记得取消链接。另一个创建了一个匿名管道,没有麻烦的名称和删除操作,但是管道的末端与管道中的命令绑定在一起,以某种方式掌握文件描述符并在其余部分中使用它们并不十分方便的脚本。在编译的程序中,我只想做ret=pipe(filedes);在Bash中有exec 5<>file这样的期望- "exec 5<> -"或者"pipe <5 >6"Bash中有类似的东西吗?
38 bash  script  pipe 

2
查找管道另一端的过程
我试图跟踪一些进程的某些奇怪行为,并遇到了一个我不确定如何跟踪过去的问题。我附加到的挂起进程strace -p显示了以下内容: Process 7926 attached - interrupt to quit read(3, 好的,它正在等待fd 3上的输入,所以我去检查了它是什么: $ ls -l /proc/7926/fd/3 lr-x------ 1 user grp 64 Mar 15 10:41 /proc/7926/fd/3 -> pipe:[20043922] 好的,所以这是一个烟斗...现在的问题-这个烟斗的作者是谁?我记得在Linux上,Unix域套接字有一个特殊功能,您可以在其中请求以NUL字节开头的文件路径,以访问“抽象套接字名称空间”(此处提到:http : //tkhanson.net/cgit.cgi /misc.git/plain/unixdomain/Unix_domain_sockets.html)。我不确定是否可以利用类似的管道,但是我还没有发现任何东西。 我希望有一个类似的工具fuser或lsof可能会有所帮助的工具,但是我却一无所获。 有任何想法吗?
34 linux  pipe 

3
为什么Powershell默默地将带有一项的字符串数组转换为字符串
考虑以下Powershell脚本,该脚本在C:\中搜索名称为“ og”的文件夹: PS C:\>(ls |%{$ _。Name} |?{$ _。Contains(“ og”)}) 性能日志 程序文件 setup.log 现在,我缩小搜索范围以仅获取一项: PS C:\>(ls |%{$ _。Name} |?{$ _。Contains(“ Prog”)}) 程序文件 奇怪的是,第一个操作产生一个数组,而第二个操作(IMHO在语义上是相同的操作,因此它应产生相同类型的结果)产生一个字符串。在以下结果中可以看出: PS C:\>(ls |%{$ _。Name} |?{$ _。Contains(“ og”)}))。长度 3 PS C:\>(ls |%{$ _。Name} |?{$ _。Contains(“ Prog”)}))。长度 13 这可能非常令人讨厌,因为与“ og”匹配的文件夹显然比与“ prog”匹配的文件夹少。 显然,PowerShell隐式地将单个项目数组“拆箱”到单个对象,并且我们永远都不会得到长度为1的数组。似乎每次我想对通过管道传递的结果进行计数时,我都必须检查是否m是否处理数组。 如何防止这种情况发生?您如何处理?
33 powershell  pipe 

3
多行bash命令中的注释
这个单命令的BASH脚本文件很难理解,所以我想为每个动作写一个注释: echo 'foo' \ | sed 's/d/a/' \ | sed 's/e/b/' \ | sed 's/f/c/' \ > myfile (sed只是一个例子,实际上是混用,trs和awk的组合) 我不想重复行,或者每个注释都离它适用的行很远。 但是同时BASH似乎不允许“在线”注释。 有解决这个问题的优雅方法吗?
32 bash  pipe  comments  sh 



3
用管道将Gunzip和mysql用Gunzip压缩转储并将其导入
我有一个.gz sql转储文件(例如:foo.sql.gz),我想使用经典的mysql命令将其导入数据库中。 gunzip -c foo.sql.gz > foo.sql mysql -uroot -ppassword foo < foo.sql foo是数据库。 如何将这两个命令整合到一个命令中? 试过了 gunzip -c foo.sql.gz | mysql -uroot -ppassword foo 但似乎不起作用;我得到gzip: stdout: Broken pipe
27 mysql  pipe  dump  stdout  gunzip 

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.