greping一个值!= * .file扩展名

时间:2012-08-31 08:49:51

标签: bash unix grep

不是100%关于如何解决这个问题。

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

file
file.ext

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

合作
file

如何才能为文件执行grep?或者是grep甚至是正确的命令?

!grep *.ext

伪代码^

6 个答案:

答案 0 :(得分:1)

为什么不呢:

grep foobar file

或者如果您想搜索目录

find . -name 'file' | xargs -r grep boofar

答案 1 :(得分:0)

您可以尝试使用grep'file $',即选择以file结尾的行,之后没有任何内容。或者,您可以使用grep -v来反转结果。

# (echo "file"; echo "file.txt") | grep file$
file
# (echo "file"; echo "file.txt") | grep -v .ext
file

答案 2 :(得分:0)

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

if [ -r /some/path/file ]; then
  echo "File is readable."
fi

答案 3 :(得分:0)

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

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

这将排除以.ext结尾的每个文件名。

答案 4 :(得分:0)

尝试

grep -v option 

-v做反向匹配

详细信息请$ man grep

答案 5 :(得分:0)

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

find . -not -name '*.ext'