我可以做我需要做的問題,如果我cd到正確的目錄,但我們的教授希望我們能夠從任何地方做到這一點。如果我使用ls和grep,如何指定要搜索的目錄?
我可以做ls | grep *pattern*
它可以在我所在的目錄下工作,但是我怎麼通過指定路徑來完成任何操作?
我可以做我需要做的問題,如果我cd到正確的目錄,但我們的教授希望我們能夠從任何地方做到這一點。如果我使用ls和grep,如何指定要搜索的目錄?
我可以做ls | grep *pattern*
它可以在我所在的目錄下工作,但是我怎麼通過指定路徑來完成任何操作?
ls /path/to/directory | grep *pattern*
應該工作。
如果您正在搜索特定文件的目錄,那麼我會建議使用find
命令。 grep
通常用於搜索文件中的內容,並列出文件名的內容。
要搜索任何類型的文件從任何地方,你可以做 -
find /path/to/search -type f
這將遞歸列出所有文件,如果該目錄下有子目錄。您可以使用-depth
選項來控制該選項。您也可以使用-name
或-regex
選項來查找特定文件。關於find
的手冊頁有例子的所有信息。
我的最後一個問題是我怎麼會實現「,其名稱不與任何一個小寫或大寫英文字母
ls -1 | grep "^[^a-zA-Z].*"
^和$開始:這些錨它指向(^)字符串的開始和結束($)
[^ ..]:當^在字符類中時,它將否定字符的內容類。
我真的很喜歡,但不幸的是我的教授要求我們用ls開始命令,所以我需要管理它。不過,這些工作很好。 我最後一個問題是我如何實現「誰的名字不是以小寫或大寫英文字母開頭。「 我試過'ls | grep'$ [^ a-zA-Z] [a-zA-Z] [a-zA-Z] * $''但它不起作用 –
@DougSmith補充說回答:祝你好運!! –
爲什麼結尾字符?我以爲他只關心起始字符?'「^ [^ a-zA-Z]」' –
你能用find
嗎?
find | grep "pattern"
它應該工作!或者如果你正在尋找目錄名稱中的模式,你應該這樣做
ls -R | grep "pattern"
這將遞歸搜索到您的目錄樹中。
就是這樣。
你試過'人grep'嗎?我建議這樣做... –
聞起來像功課。在此閱讀有關如何使用'ls'命令的信息。 http://www.columbia.edu/acis/rad/unixcmds/ls.html它會比我們告訴你答案更有用。 – Schwern
「man ls」,「man grep」 – Jason