2012-08-31 72 views
1

不是100%如何去做這件事。greping的價值!= *。文件擴展名爲

基本上我的應用程序創建兩個文件輸出。

file 
file.ext 

當通過目錄搜索它總是返回兩個文件。我只希望與

file 

我該如何爲文件做一個grep?或者grep甚至是正確的命令?

!grep *.ext 

僞代碼^

回答

0

你可以嘗試用grep「文件$」,即選擇具有後該文件並沒有什麼結束行。或者,您可以使用grep -v來反轉結果。

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

我不知道你正在嘗試使用grep的事,但如果你想檢查文件是否存在,你做簡單:

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

grep的有-v標誌逆含義(尋找那些包含模式行):

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

這將排除結尾的文件名。

1

爲什麼不乾脆:

grep foobar file 

,或者如果你要搜索的目錄

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

嘗試

grep -v option 

-v做逆匹配

詳情做$ man grep

0

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

find . -not -name '*.ext'