使用 wc 将标准输出传输到文件

使用 wc 将标准输出传输到文件

我正在为一个班级做一个实验作业,示例users | wc -w为显示当前登录的用户数量。讲师要求我们将输出写入users文件 ( users > file),同时仍显示计数。我最初的想法是将原始示例更改为简单的 read users > file | wc -w,但我收到错误:

ambiguous output redirect

我们大学的 Unix 实验室让我们工作,默认情况下tcsh,我知道 shell 之间的命令可能有所不同。有没有一个命令可以完成我完全忘记的任务?

答案1

使用tee

users | tee file | wc -w

给出用户数量作为输出,并将用户作为内容写入一个文件。


你问题中的案例:

command >file | command2

这是行不通的。将>file输出重定向command到文件file,同时输出被写入匿名管道,命令command2在另一端读取。这是一个不明确的重定向。

tee命令将接受一个file参数,其中tee写入从标准输入接收到的所有内容。tee还写入从标准输入到标准输出的所有内容,您可以在其中重定向到更多命令或文件。

答案2

有一个命令可以完成此操作;它的名字叫tee

users | tee file | wc -w

附言。 (外部)命令在 shell 之间没有区别;输入和输出重定向语法确实有所不同。

相关内容