为什么以下命令不输出任何内容?

时间:2014-07-20 08:24:25

标签: bash unix awk

为什么以下命令不作为输出打印?

ls -ltr > awwk | cat awwk |awk '{print $1}'

2 个答案:

答案 0 :(得分:8)

当你这样做时

ls -ltr > awwk | cat awwk

lscat同时运行。由于cat没有等待ls完成,因此可能会在ls向其中写入任何内容之前尝试读取文件,因此它会获得空输入。< / p>

如果您正在写入文件然后从中读取文件,则不需要使用管道。您可以按顺序执行命令:

ls -ltr > awwk
awk '{print $1}' < awwk # No need to use cat here

或者您可能根本不需要该文件,只需直接从一个命令管道到下一个命令:

ls -ltr | awk '{print $1}'

答案 1 :(得分:0)

您可以尝试以下方法,

ls -ltr > awwk; cat awwk | awk '{ print $1}'