为什么以下命令不作为输出打印?
ls -ltr > awwk | cat awwk |awk '{print $1}'
答案 0 :(得分:8)
当你这样做时
ls -ltr > awwk | cat awwk
ls
和cat
同时运行。由于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}'