2

我正在跨特定目录中的目录搜索所有脚本中的表名。例如。主页/abcd

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

我用过这样的命令。

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

在这里,每当此目录下的文件没有读取权限时,我都会收到如下错误消息:

无法打开文件。

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

4

2 回答 2

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
于 2013-10-09T12:09:08.220 回答
2

使用-s带有 的选项grep。该命令将是

grep -s table_name home/abcd/abc | cut -d":" -f1 > output.txt
于 2013-10-09T12:11:03.360 回答