我对 Ubuntu 还很陌生,我正在尝试掌握在目录中查找特定文件的概念,以及在另一个实例中查找文件中的特定字符串或字符串模式。我读过各种文章,找到了命令 grep 和 find。如果我走错了路,请指导我,我走对路了吗?
答案1
grep命令用于搜索文本或在给定文件中搜索包含与给定字符串或单词匹配的行。默认情况下,grep 显示匹配的行。
例子 :
grep 'yourword' filename
grep 'yourword' file1 file2 file3
grep 'string1 string2' filename
cat otherfile | grep 'something'
command | grep 'something'
command option1 | grep 'data'
grep --color 'data' fileName
寻找命令是 Linux 系统中最重要的和最常用的命令之一。 find 命令用于根据条件搜索和定位文件和目录列表。
例子 :
在当前工作目录中查找所有名称为 test.txt 的文件。
find . -name test.txt
在 / 目录中查找所有名称为 test 的目录。
find / -type d -name test
查找/home目录下所有名称为test.txt,且包含大写和小写字母的文件。
find /home -iname test.txt
更多帮助man grep , man find
参考地点
答案2
要在目录中搜索特定文件,
locate filename
或者
find /path/to/search -iname 'filename'
在文件中搜索特定单词
grep text /path/to/the/file
答案3
您可以通过多种方式使用find
和命令:grep
寻找
demo.tx
要在当前目录中查找文件(例如t),请使用:
find . -name demo.txt
其中.
代表当前目录。您可以根据需要进行更改。要在主目录中查找相同的文件(忽略大小写):
find ~/ -iname demo.txt
其中~/
代表您的主目录。查找正在使用的目录:
find . -type d -name <directory_name>
查找所有空文件
find . -type f -empty
查找所有空目录
find . -type d -empty
查找所有大于 100 MB 的文件
find / -size +100M
更多内容请参见man find
grep
在文件中搜索给定的字符串
grep "<string>" <filename>
在多个文件中搜索给定的字符串
grep "<string>" <file_pattern>
在文件中不区分大小写地搜索给定的字符串
grep -i "string" <file_name>
更多内容请参见man grep
答案4
最有用的版本grep
可能是grep -r
。-r不只是搜索指定的目录:它递归地搜索所有子文件夹,因此如果您不知道将文件放在哪里,grep 会为您找到它。