2015-07-10 42 views
-1

我有一個名爲像database.2015-07-10.sql 我想知道這個文件的數量我的家目錄中的文件。的bash的grep搜索文件的正則表達式

grep -l 'database' /home/user/* | wc -l 

但是當我嘗試

grep -l 'database\.[0-9]{4}*' /home/user/* 

grep -l 'database\.[0-9]*' /home/user/* 

它沒有給出結果,但

grep -l 'database\.[0-9]*' /home/user/* 

給所有結果,包括database12.sql,database1.sql等。 I不理解grep中的正則表達式。它與PHP的正則表達式不同嗎?

+1

你的目標是什麼?你想搜索這些文件的內容嗎?或者,您是否想要反映名稱與該模式匹配的文件的數量? – John1024

+0

我想要搜索的名字,而不是內容。 –

回答

2

grep的搜索內容,而不是文件名。您應該使用

ls /home/user/database*.sql|wc -l 

或使用

ls|grep 'YOUR PATTERN HERE'|wc -l 

+0

grep有一個'-c'選項用於行計數 – Jahid