1

不是 100% 关于如何去做。

基本上我的应用程序创建两个文件输出。

file
file.ext

搜索目录时,它总是返回两个文件。我只希望与

file

我怎样才能只为文件做一个grep?或者 grep 甚至是正确的命令?

!grep *.ext

伪代码^

4

6 回答 6

1

为什么不只是:

grep foobar file

或者如果你想搜索你的目录

find . -name 'file' | xargs -r grep boofar
于 2012-08-31T08:55:14.233 回答
0

您可以尝试使用 grep 'file$',即选择以 file 结尾的行,之后什么都没有。或者,您可以使用 grep -v 反转结果。

# (echo "file"; echo "file.txt") | grep file$
file
# (echo "file"; echo "file.txt") | grep -v .ext
file
于 2012-08-31T08:53:25.530 回答
0

我不知道你想用 grep 做什么,但是如果你想检查一个文件是否存在,你只需这样做:

if [ -r /some/path/file ]; then
  echo "File is readable."
fi
于 2012-08-31T08:54:15.887 回答
0

Grep 有一个-v反转含义的标志(查找包含该模式的行):

ls /your/directory | grep -v '\.ext$'

这将排除每个以.ext.

于 2012-08-31T08:54:27.533 回答
0

尝试

grep -v option 

-v 做反向匹配

有关详细信息,请执行$ man grep

于 2012-08-31T08:55:26.613 回答
0

要生成与模式不匹配的所有文件的列表,请-not在 find 中使用。所以你要:

find . -not -name '*.ext' 
于 2012-08-31T16:45:28.107 回答