我正在尝试使用以下命令过滤掉不包含以下文件名的行,但是我不确定为什么拒绝权限的行会不断出现在我的结果中。当我使用grep -v "total|denied"
时,它应该消失了。
wc -l *.* | egrep -v "total|denied" | sort -nr -k1,1
wc: host.save: Permission denied
33301 apache-maven-3.5.3-bin.tar.gz
14149 jenkins-cli.jar
240 examples.desktop
19 list.py
19 interview_GL.sh
17 lines.txt
7 number.py
答案 0 :(得分:2)
只有stdout传递到管道到grep中,但是这些错误消息在stderr上
您可以将stderr转发到/ dev / null或也将它们发送到stdout
将错误发送到/ dev / null:
wc -l * 2>/dev/null
将错误重定向到stdout:
wc -l * 2>&1 | grep -v dir
答案 1 :(得分:1)
您显然不被允许读取host.save
文件的内容,因此该错误来自第一个命令。
您是否尝试过屏蔽错误?
wc -l *.* 2>/dev/null | egrep -v "total|denied" | sort -nr -k1,1