使用grep -v过滤行

时间:2018-08-10 08:32:23

标签: grep

我正在尝试使用以下命令过滤掉不包含以下文件名的行,但是我不确定为什么拒绝权限的行会不断出现在我的结果中。当我使用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

2 个答案:

答案 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