【问题标题】:Linux, how using tee in piped commandLinux,如何在管道命令中使用 tee
【发布时间】:2012-03-05 00:16:08
【问题描述】:
time curl http://www.google.com | tee | wc | gzip > google.gz

为什么这个命令不起作用?它创建文件并对操作进行计时,但不打印行数、单词数和字符数 (wc)。

time curl http://www.google.com | tee | wc 

这将打印单词字符和行,但显然,tee 部分是没有意义的。

是因为我将 url 的字数发送到 google.gz 吗?

我必须使用 tee、gzip、time、curl 将 google 网页下载到 gzip 文件,打印字数,用了多长时间。

这是一项任务,所以我不想找人为我做这件事。我只是遇到了一个问题,即我无法使用实用程序,而且我无法同时使用 gzip。

也许有一种方法可以将 gzip 与 curl 一起使用?

【问题讨论】:

  • 所有这些命令完全按照它们应该做的。您的第一个命令将wc 的输出通过管道传输到gzip。空的tee 什么都不做,因为它没有目标。如果你解释了你想做什么,我们可以解释如何去做。

标签: linux unix command tee


【解决方案1】:

好吧,wc 输出字符、单词和行的数量,但随后 you send it to gzip 会对其进行压缩。最终,压缩信息以google.gz 结束。如果您解压缩文件,例如与

gunzip google.gz

你会看到三个数字。

此外,通常当人们使用tee 时,他们会指定一个文件来存储 tee 的数据。

【讨论】:

  • 你怎么能这样做:time curl http://www.google.com | tee gzip > google.gz | wc 这样做只会创建一个名为 gzip 的文件和另一个名为 google.gz 的文件。
  • 是的。我不确定人们还能期待什么。也许这会有所帮助:linux.die.net/man/1/tee
【解决方案2】:

time curl http://www.google.com | tee /dev/tty | gzip > google.gz

【讨论】:

    【解决方案3】:

    我猜你想要这样的东西:

    time curl http://www.google.com | tee /tmp/z | gzip > google.gz; wc /tmp/z; rm /tmp/z
    

    【讨论】:

    • 是的,我可以做到这一点,但任务是使用单行管道组合命令来做到这一点。我不确定; 是否符合条件?
    • 你为什么不这么说?!为什么要让我们拔牙来得到实际的问题? (提示:将gzip 的输出通过管道传输到tee,该tee 将其存储在google.gz 中并允许它继续到gunzip | wc。)
    猜你喜欢
    • 2022-11-21
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 2022-06-21
    • 1970-01-01
    相关资源
    最近更新 更多