我可以做我需要做的问题,如果我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