如何在unix中忽略“无法打开文件”错误消息

时间:2013-10-09 12:08:14

标签: shell unix cut

我在特定目录中的所有脚本中搜索表名。 例如。家/ ABCD

我在home / abcd下有abc,pqr,xyz目录。我在这些目录中有我的项目特定脚本。

我使用过这样的命令。

grep table_name home/abcd/abc | cut -d":" -f1 > output.txt

此处,只要此目录下的文件没有READ权限,我就会收到如下错误消息:

  

无法打开文件。

但是,我不想在屏幕上显示此消息。

2 个答案:

答案 0 :(得分:4)

使用2>/dev/null以便不显示stderr:

grep table_name home/abcd/abc 2>/dev/null | cut -d":" -f1 > output.txt

测试

$ ls -ltr a*
-rwxr-xr-x 1 me me 24 Oct  9 14:06 a
--wx-wx-wx 1 me me  0 Oct  9 14:10 a1 <--- no reading rights
$ grep a a*
a:123 abc
grep: a1: Permission denied
$ 
$ grep a a* 2>/dev/null
a:123 abc

答案 1 :(得分:2)

-s选项与grep一起使用。命令将是

grep -s table_name home/abcd/abc | cut -d":" -f1 > output.txt