Bash 重定向到/dev/null:没有这样的文件或目录
我想知道是否有人能帮我解决这个错误: wc:Files/Unused-CMA_host.txt:没有这样的文件或目录 该文件不存在,那么我想将输出重定向到/dev/null 我尝试使用这句话Bash 重定向到/dev/null:没有这样的文件或目录,bash,Bash,我想知道是否有人能帮我解决这个错误: wc:Files/Unused-CMA_host.txt:没有这样的文件或目录 该文件不存在,那么我想将输出重定向到/dev/null 我尝试使用这句话/dev/null 2>&1,它在其他情况下有效,但在这里不起作用: wc-l文件/Unused-CMA_host.txt | awk'{print$1}>/dev/null 2>&1 有人知道为什么吗 谢谢。重定向适用于管道的单个组件,而不是整个管道。在您的示例中,只重定向awk的标准输出。要重定向整个管道
/dev/null 2>&1
,它在其他情况下有效,但在这里不起作用:
wc-l文件/Unused-CMA_host.txt | awk'{print$1}>/dev/null 2>&1
有人知道为什么吗
谢谢。重定向适用于管道的单个组件,而不是整个管道。在您的示例中,只重定向
awk
的标准输出。要重定向整个管道的标准错误和标准输出,需要一个命令组,例如
{ wc -l Files/Unused-CMA_host.txt | awk '{print $1}' ; } > /dev/null 2>&1
但是,如果文件不存在,将不会有任何标准输出。也许您想重定向标准错误以抑制错误消息?然后你可以简单地使用
wc -l Files/Unused-CMA_host.txt 2> /dev/null | awk '{print $1}'
对于不存在的文件,
awk
将只从空流中读取,而不执行任何操作。重定向应用于管道的单个组件,而不是整个管道。在您的示例中,只重定向awk
的标准输出。要重定向整个管道的标准错误和标准输出,需要一个命令组,例如
{ wc -l Files/Unused-CMA_host.txt | awk '{print $1}' ; } > /dev/null 2>&1
但是,如果文件不存在,将不会有任何标准输出。也许您想重定向标准错误以抑制错误消息?然后你可以简单地使用
wc -l Files/Unused-CMA_host.txt 2> /dev/null | awk '{print $1}'
对于不存在的文件,
awk
将只从空流中读取,而不执行任何操作。解释您正在执行的操作。如果txt文件不存在,您要计算哪些行?您希望计数为0,还是错误,或者是什么?wc-l文件/Unused-CMA_host.txt 2>/dev/null | awk'{print$1}'
解释一下您在做什么。如果txt文件不存在,您要计算哪些行?您是否希望计数为0,或者出现错误,或者是什么?wc-l文件/Unused-CMA_host.txt 2>/dev/null | awk'{print$1}'