fgrep命令
fgrep命令
当需要搜索包含很多正则表达式元字符的字符串时,例如$、^等,fgrep很有用,其通过指定搜索字符串包含固定字符,从而无需对每个字符进行转义用反斜杠,如果搜索的字符串包含换行符,则每行将被视为要在搜索中匹配的单个固定字符字符串。也就是说fgrep是用来搜索固定字符的,固定字符表示字符串是按字面意义解释的-元字符不存在,因此不能使用正则表达式,运行fgrep与使用-F选项运行grep效果相同。
语法
fgrep [-b] [-c] [-h] [-i] [-l] [-n] [-s] [-v] [-x] [ -e pattern_list] [-f pattern-file] [pattern] [file]
参数
-b: 在每一行前面加上找到该行所在的块号,这在根据上下文(第一个块为0)定位块号时非常有用。-c: 只打印包含模式的行数。-h: 搜索多个文件时禁止打印文件。-i: 在比较时忽略大小写的区别。-l: 打印一次具有匹配行的文件名称,用换行分隔,当模式出现多次时,不会重复文件名。-n: 在文件中,在每一行前面加上它的行号(第一行是1)。-s: 静默工作,也就是说只显示错误消息,这对于检查错误状态非常有用。-v: 打印除包含模式的行以外的所有行。-x: 仅打印完全匹配的行。-e pattern_list: 在pattern list中搜索字符串,当字符串以-开头时很有用。-f pattern-file: 从模式文件中获取模式列表。pattern: 指定在搜索输入期间使用的模式。file: 要搜索模式的文件的路径名,如果没有指定文件参数,将使用标准输入。
示例
hello.c文件内容如下:
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Hello World\n");
printf("Hello World\n");
printf("Hello World\n");
return 0;
}
匹配带有Hello的行。
fgrep Hello hello.c
# printf("Hello World\n");
# printf("Hello World\n");
# printf("Hello World\n");
匹配带有Hello行的数量。
fgrep -c Hello hello.c
# 3
反转匹配的意义,选择不匹配Hello的行。
fgrep -v Hello hello.c
# #include <stdio.h>
# #include <stdlib.h>
#
# int main() {
# return 0;
# }
匹配带有i的行并忽略大小写。
fgrep -i I hello.c
# #include <stdio.h>
# #include <stdlib.h>
# int main() {
# printf("Hello World\n");
# printf("Hello World\n");
# printf("Hello World\n");
仅输出与文件整行匹配的行。
fgrep -x " return 0;" hello.c
# return 0;
匹配带有Hello的行并输出行号。
fgrep -n Hello hello.c
# 5: printf("Hello World\n");
# 6: printf("Hello World\n");
# 7: printf("Hello World\n");
递归匹配当前目录下所有文件中能够匹配h*的文件,请注意由于使用fgrep,命令是不会匹配*的模式,而是将其作为固定字符*去匹配,所以此时是没有匹配的,如果使用grep以及相同的参数,则能够输出行号并忽略大小写,注意实际在终端中匹配成功的位置会使用红色字体标注。
fgrep -rni "h*" ./
# [输出为空]
每日一题
https://github.com/WindrunnerMax/EveryDay
参考
https://www.computerhope.com/unix/ufgrep.htm
https://www.runoob.com/linux/linux-comm-fgrep.html
https://www.geeksforgeeks.org/fgrep-command-in-linux-with-examples/
fgrep命令的更多相关文章
- grep egrep fgrep命令
一.grep.egrep.fgrep命令 本文中主要介绍了linux系统下grep egrep fgrep命令和正则表达式的基本参数和使用格式.方法.(注释:文中fg代表例子,) 1.1.基本定义: ...
- Shell的egrep、grep、fgrep命令的使用
Linux egrep 命令用于在文件内查找指定的字符串.与grep-E使用语法及参数相似,不同点在于解读字符串的方法. 语法: egrep [范本模式] [文件或目录] 参数说明: [范本模式]:查 ...
- Linux命令行–更多bash shell命令(转)
4.1.1 探查程序 ps 命令 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户进程的进程 显示的当前进程的项目 进程号 运行在哪个终端(tty) 进程占用的CPU时间 Linux系统支 ...
- 【转载】grep,egrep,fgrep详解
[转载自]http://blog.csdn.net/homking/article/details/6000711 egrep 等价于 grep -E fgrep 等价于 grep -F grep - ...
- grep与正则表达式,grep、egrep和fgrep
grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串. ...
- Linux常用脚本命令总结
基本操作 通用操作 1. export 显示所有的环境变量,也可以获取到某个变量的详细信息: export # 显示所有 echo $SHELL # 只显示SHELL 2. whereis 使用系统自 ...
- 每日linux命令学习-grep模式检索
grep模式检索指令包括grep,egrep,和fgrep,.Linux系统使用正则表达式优化文本检索,所以在此,笔者首先学习了一下正则表达式. 1. 正则表达式 正则表达式使用被称为元字符(Meta ...
- Linux命令(八)过滤文本 grep
grep 命令介绍 grep是一个强大的文本搜索工具命令,用于查找文件中符合指定格式的字符串,支持正则表达式.如不指定任何文件名称,或是文件名为 -,则gerp命令从标准输入设备中读取数据. grep ...
- shell基础 -- grep、sed、awk命令简介
在 shell 编程中,常需要处理文本,这里介绍几个文本处理命令. 一.grep 命令 grep 命令由来已久,用 grep 命令来查找 文本十分方便.在 POSIX 系统上,grep 可以在两种正则 ...
- linux中grep命令的使用
转载:http://blog.csdn.net/universsky/article/details/8866402 linux中grep命令的使用 grep (global search regul ...
随机推荐
- 【Linux】字符驱动之sysfs接口实现
[来源]https://blog.csdn.net/qq_20553613/article/details/104556269
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2024.01.05)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.15)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- Docker导出镜像的总结
Docker导出镜像的总结 安装Docker mkdir -p /etc/docker cat >/etc/docker/daemon.josn <<EOF { "bip& ...
- [转帖]一文搞懂各种数据库SQL执行计划:MySQL、Oracle等
https://zhuanlan.zhihu.com/p/99331255 MySQL 执行计划 Oracle 执行计划 SQL Server 执行计划 PostgreSQL 执行计划 执行计划(ex ...
- kafka的学习之二_kafka的压测与GUI管理
kafka的学习之二_kafka的压测与GUI管理 第一部分创建topic cd /root/kafka_2.13-3.5.0 bin/kafka-topics.sh --create --boots ...
- Linux上面Shell简单进行数值计算的办法
1. 自己简单写了一个脚本 来计算 一个服务进程启动的耗时, 精度要求不高 10秒上下就可以. 在程序执行之前和之后的处理 在最前面设置一句time1=`date +%s`在末尾一句设置time2=` ...
- nginx 最简单的在同一个配置文件里面将http 监听的端口转发到其他端口的方法
今天发现一个问题, 我这边修改了nginx 的listen的端口之后 应用出现了问题 无法使用. 想到之前曾经试验过 tcp 的 proxy 所以就想到直接再配置文件的默认添加一句话 启动TCP的 端 ...
- Vue3中ref和toRef的区别
1. ref是复制,视图会更新 如果利用ref将某一个对象中的某一个属性值变成响应式数据 我们修改响应式数据是不会影响原始数据的; 同时视图会跟新. ref就是复制 复制是不会影响原始数据的 < ...
- 手写promise完成异常处理和状态只能够修改一次
8.处理 Promise 抛出的异常 <script src="./Promise.js"></script> <script type=" ...