这篇文章Shell内容一次性详述,无需催促?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4785个文字,预计阅读时间需要20分钟。
Shell 搜索与匹配 1、在文件中查找字符串 grep 命令可用于搜索文件,查找指定字符串。例如,使用 grep myvar * .c 在当前目录下搜索所有包含 myvar 的 .c 文件。
Shell 搜索与匹配
1、在文件中查找字符串
grep 命令可以搜索文件,查找指定的字符串。
$ grep myvar *.c在这个例子中,我们搜索的文件全都位于当前目录下。因此,我们只使用了简单的 shell 模式 *.c 来匹配以 .c 结束的文件,并没有在文件名前再添加路径。
但并非所有待搜索的文件都老老实实地待在当前目录下。但因为shell 并不在意你输入多少路径名,所以我们也可以这么写:
$ grep myvar ../lib/*.c ../server/*.c ../cmd/*.c */*.c如果待搜索的文件不止一个,grep 会在输出前加上文件名以及冒号,然后是该文件中包含 grep 搜索内容的文本。
grep 的第一个(非选项)参数可以是一个简单的字符串,也可以是更复杂的正则表达式(regexp)。正则表达式不同于 shell 的模式匹配,尽管两者有时看起来差不多。
常见错误
忘记指定 grep 的输入,例如 grep myvar。这种情况下,grep 会认为你要从 STDIN 提供输入,而你以为它会读取文件,于是 grep 就干等着,无所事事。
2、只显示包含搜索结果的文件名
你需要找出包含特定字符串的文件,但是不想看到其所在的文本行,只用输出文件名即可,经常在线上为了搜索配置文件。
本文共计4785个文字,预计阅读时间需要20分钟。
Shell 搜索与匹配 1、在文件中查找字符串 grep 命令可用于搜索文件,查找指定字符串。例如,使用 grep myvar * .c 在当前目录下搜索所有包含 myvar 的 .c 文件。
Shell 搜索与匹配
1、在文件中查找字符串
grep 命令可以搜索文件,查找指定的字符串。
$ grep myvar *.c在这个例子中,我们搜索的文件全都位于当前目录下。因此,我们只使用了简单的 shell 模式 *.c 来匹配以 .c 结束的文件,并没有在文件名前再添加路径。
但并非所有待搜索的文件都老老实实地待在当前目录下。但因为shell 并不在意你输入多少路径名,所以我们也可以这么写:
$ grep myvar ../lib/*.c ../server/*.c ../cmd/*.c */*.c如果待搜索的文件不止一个,grep 会在输出前加上文件名以及冒号,然后是该文件中包含 grep 搜索内容的文本。
grep 的第一个(非选项)参数可以是一个简单的字符串,也可以是更复杂的正则表达式(regexp)。正则表达式不同于 shell 的模式匹配,尽管两者有时看起来差不多。
常见错误
忘记指定 grep 的输入,例如 grep myvar。这种情况下,grep 会认为你要从 STDIN 提供输入,而你以为它会读取文件,于是 grep 就干等着,无所事事。
2、只显示包含搜索结果的文件名
你需要找出包含特定字符串的文件,但是不想看到其所在的文本行,只用输出文件名即可,经常在线上为了搜索配置文件。

