我剛開始bash,我正在做一個搜索腳本,搜索文件和grep模式。簡單的想法:BASH grep模式文件名在行尾
find $HOME -type f | grep $1
在當前腳本中,我匹配包含$ 1(文件和目錄)的所有內容。我只想匹配文件名中的模式,我不想匹配路徑中的目錄。我嘗試了很多帶有諸如「/.*^$」等符號的高級表達式來grep在特定的部分,但老實說對於一個新用戶來說有點難。
切割工具不是一個選項,因爲我想要的文件的路徑。
編輯:
正確的示例:
$ ./search test
/home/user/documents/test.txt
/home/user/downloads/blahtestblah.py
不正確例如:
$ ./search test
/home/user/test/whatever.txt
在不正確的示例的grep在路徑匹配的關鍵詞,匹配的目錄。
你能告訴我們的實際樣品的輸入和輸出,你想到了它 – Inian
使用'basename'就像'find $ HOME -type f | grep $(basename $ 1)',但爲什麼你這樣做?沒有高效的方式,'發現'可以做到沒有'grep'Ty –
Ty但沒有工作。我正在使用grep,因爲關鍵字必須位於名稱內部,而不僅僅是名稱本身。用一些例子編輯 – Eisenberk