grep 是 Linux 及类 Unix 系统中非常强大的文本搜索工具,它可以基于用户提供的模式(pattern)在文件或输入流中搜索匹配的行,并将其输出。以下是一些 grep 命令的实战用法:
基础用法
搜索单个文件:
grep '搜索词' 文件名例如,要在一个名为
log.txt的文件中搜索包含 "error" 的行:grep 'error' log.txt搜索多个文件:
grep '搜索词' 文件1 文件2 ...搜索目录下的所有文件:
grep '搜索词' ./*或者递归搜索子目录:
grep -r '搜索词' 目录名
高级用法
忽略大小写:
grep -i 'searchWord' file.txt-i参数让搜索不区分大小写。正则表达式搜索:
grep -E 'regex_pattern' file.txt-E或--extended-regexp使用扩展正则表达式。若想使用基本正则表达式(BRE),无需额外参数,默认情况下grep使用的就是 BRE。反向搜索:
grep -v '排除词' file.txt-v参数表示打印不包含指定模式的行。输出行号:
grep -n '搜索词' file.txt-n参数会让grep输出匹配行时带上行号。统计匹配行数:
grep -c '搜索词' file.txt-c参数用来计算匹配行的数量而不是列出具体的匹配行。仅显示匹配部分:
grep -o '模式' file.txt-o参数只会输出每行中匹配到的部分,而非整行。多模式搜索:
grep -e '模式1' -e '模式2' file.txt-e参数后跟多个模式,可同时搜索多个不同的模式。
示例
搜索以特定字符串开头的行:
grep '^inet ' /etc/network/interfaces这将找到所有以 "inet " 开头的行。
搜索并显示匹配行及其上下文:
grep -C 2 '搜索词' file.txt-C参数后面跟着数字,表示显示匹配行前后的若干行。
以上只是 grep 的部分实战用法,实际上 grep 的功能远不止这些,还可以与其他命令结合使用,如管道(|)、重定向(>或>>)等进行更复杂的文本处理任务。