为什么以下命令不打印输出?
ls -ltr > awwk | cat awwk |awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
当你这样做
ls -ltr > awwk | cat awwk
Run Code Online (Sandbox Code Playgroud)
两者ls同时cat运行.由于cat不等待ls完成,它可能尝试从文件中读取之前ls已经写入任何内容,因此它获得空输入.
如果您正在写入文件然后从中读取文件,则无需使用管道.您可以按顺序执行命令:
ls -ltr > awwk
awk '{print $1}' < awwk # No need to use cat here
Run Code Online (Sandbox Code Playgroud)
或者您可能根本不需要该文件,只需从一个命令直接管道到下一个命令:
ls -ltr | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)