默认情况下grep会显示匹配了正则的整行,但是我们的正则只想显示匹配了的字符时怎么办
This is an updated and cross distribution safe answer
grep -oh "[[:alpha:]]*th[[:alpha:]]*" 'filename'
To summaries -oh outputs the regular expression matches to the file content (and not its filename), just like how you would expect regular expression to work in vim/etc... What word or regular expression you would be searching for then, is up to you! As long as you remain to POSIX and not perl syntax (refer below)
More from the manual for grep
-o Print each match, but only the match, not the entire line.
-h Never print filename headers (i.e. filenames) with output lines.
-w The expression is searched for as a word (as if surrounded by
`[[:<:]]' and `[[:>:]]';
The reason why the original answer does not work for everyone
Can grep show only words that match search pattern?
于是,就有了,查看weblogic GC日志的命令
在多个weblogic服务器日志上找FullGC
查找日志末5000行,打印文件名和错误的行
-E选项,支持扩展的正则表达式,支持或“|”操作
grep -oh "[[:alpha:]]*th[[:alpha:]]*" 'filename'
引用
This is an updated and cross distribution safe answer
grep -oh "[[:alpha:]]*th[[:alpha:]]*" 'filename'
To summaries -oh outputs the regular expression matches to the file content (and not its filename), just like how you would expect regular expression to work in vim/etc... What word or regular expression you would be searching for then, is up to you! As long as you remain to POSIX and not perl syntax (refer below)
More from the manual for grep
-o Print each match, but only the match, not the entire line.
-h Never print filename headers (i.e. filenames) with output lines.
-w The expression is searched for as a word (as if surrounded by
`[[:<:]]' and `[[:>:]]';
The reason why the original answer does not work for everyone
Can grep show only words that match search pattern?
于是,就有了,查看weblogic GC日志的命令
在多个weblogic服务器日志上找FullGC
//查找FullGC grep 'Full' `head -n 10 weblogic.log |grep -oh 'gc_.*log'`
查找日志末5000行,打印文件名和错误的行
tail -n 50000 */weblogic*.log |grep -E "weblogic.*log|2937u38338"
-E选项,支持扩展的正则表达式,支持或“|”操作
发表评论
-
linux 安装mysql多个实例
2020-03-13 15:47 423mysql5.7.28多实例 安装mysql,不要启动 创 ... -
批量替换配置文件中的URL
2020-03-11 13:35 349find -iregex ".*/sh[a-z ... -
rsync备份和删除指定文件
2018-01-02 10:23 2051文件异地备份时,需要将本地文件合并到服务器上,且不能删除服务器 ... -
linux 定时任务crontab操作
2017-12-28 16:14 633常用参数: crontab -l //查看当前用户下 ... -
iptables 日志
2017-11-15 15:06 1410centos6.5配置了iptables的nat功能,但是不知 ... -
linux删除乱码文件
2017-09-30 11:20 680系统里好多乱码文件,删除不了 这个办法挺好 [url=htt ... -
解决vsftpd中文乱码问题
2017-08-25 10:45 0vsftpd中文乱码,通过ftp工具上传的中文文件会变为乱码J ... -
LVM常用命令
2017-08-25 10:28 616lvm 查看命令 lvs vgs pvs vgdisplay ... -
Centos7 firewalld操作
2017-08-25 10:27 620启动:# systemctl start firewall ... -
centos 添加DNAT SNAT
2017-08-25 10:19 3415外网服务器IP 101.168.200.22 开放端口8310 ... -
centos6.5 配置PXE系统
2017-08-25 09:58 733参考https://linux.cn/article-4902 ... -
centos6 tomcat 启动脚本 tomcat服务
2017-08-23 11:24 1440系统自动启动tomcat 复制该脚本到/etc/init.d/ ... -
CentOS6.5 整机备份与迁移恢复 五
2017-07-10 14:44 844修改网卡等配置 B服务器启动后,由于权限等原因会导至部分功能出 ... -
CentOS6.5 整机备份与迁移恢复 四
2017-07-07 16:52 868修改B系统引导器,正常启动B系统 选择系统安装或更新 ... -
CentOS6.5 整机备份与迁移恢复 三
2017-07-07 16:41 1049恢复系统文件 使用光盘启动B服务器,进入rescue模式,进入 ... -
CentOS6.5 整机备份与迁移恢复 二
2017-07-07 16:05 1158恢复分区表和格式化分区 在B服务器上,使用同样的系统盘启动系统 ... -
CentOS6.5 整机备份与迁移恢复 一
2017-07-07 15:32 7620CentOS6.5的整机备份与迁 ... -
centos vsftpd 虚拟用户安装配置
2017-07-07 14:11 643安装vsftpd yum install -y vsftp ... -
openstack 虚拟机改IP
2017-03-31 17:17 1680虚拟环境搭建好以后,需要把实体服务器切换到虚拟机中,为了 ... -
编译安装openstack mitaka horizon
2017-03-15 15:19 1634由于openstack的rpm包 ...
相关推荐
此外,grep 命令还支持其他选项和参数,例如 `-i` 选项用于忽略大小写, `-v` 选项用于显示不匹配的行, `-n` 选项用于显示行号等。这些选项和参数可以根据实际情况选择使用。 grep 命令搜索多个字符串是 Linux ...
`grep`的强大之处在于支持正则表达式,这使得我们可以使用各种复杂的模式来匹配字符串。 1. **基础正则字符** - `.`:匹配任意单个字符。 - `*`:匹配前面的字符0次或多次。 - `+`:匹配前面的字符1次或多次。 ...
-h:查询多个文件时不显示文件名 -H:只显示文件名 -l:查询多文件时只输出包含匹配字符的文件名 -n:只显示匹配行及其行号 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 (2)...
这在查看上下文环境时非常有用,例如`grep -2 pattern filename`将显示匹配行及其上下各两行。 总之,Grep是一款极其强大且灵活的文本搜索工具,熟练掌握其使用方法能够极大地提升数据处理效率。无论是基础的正则...
- **元字符**:元字符是一些具有特殊含义的字符,例如`.`、`*`、`+`等,它们可以帮助构建更复杂的匹配规则。 - **锚点**:用于指定匹配的起始或结束位置,如`^`表示行首,`$`表示行尾。 - **字符类**:如`[abc]`表示...
4. `*`:匹配前面的字符零次或多次,`*grep`匹配一个或多个空格后跟 grep 的行。 5. `.*`:匹配任意数量的任意字符。 6. `[]`:匹配括号内的任一字符,`[Gg]rep`匹配 Grep 或 grep。 7. `[^]`:匹配不在括号内的任一...
`grep` 支持三种工作模式:基本正则表达式(BRE)、扩展正则表达式(ERE)以及固定字符串匹配。默认情况下,`grep` 使用的是基本正则表达式(BRE)。 #### 2. 参数详解 - **-A NUM, --after-context=NUM** 在显示...
- -c:仅显示匹配行的计数。 - -h:在搜索多个文件时,不显示文件名前缀。 - -l:仅显示包含匹配文本的文件名。 - -n:显示匹配行及其行号。 - -s:静默模式,不显示关于不存在或无法读取文件的错误消息。 - -v:...
| `^` | 行首定位符,用于匹配字符串或行的起始位置。 | `/^love/` | 匹配所有以 "love" 开头的行 | | `$` | 行尾定位符,用于匹配字符串或行的结束位置。 | `/love$/` | 匹配所有以 "love" 结尾的行 | | `.` | 匹配...
* `\(`和`)`:标记匹配字符,如:'\(love\)',love 被标记为 1。 * `\定位单词的开始,如 :'\<grep' 匹配包含以 grep 开头的单词的行。 * `\>`:定位单词的结束,如 :'grep\>' 匹配包含以 grep 结尾的单词的行。 * `...
grep 命令支持正则表达式的使用,可以使用特殊字符来进行模式匹配。 * `.`:匹配任何单个字符 * `*`:匹配零个或多个字符 * `+`:匹配一个或多个字符 * `?`:匹配零个或一个字符 * `{n, m}`:匹配至少 n 个,至多 m...
- 显示匹配行及其行号:`grep -n "pattern" file.txt` 6. **其他高级用法** - `-o`:只显示匹配的部分,而不是整行。 - `-A num`:显示匹配行之后的num行。 - `-B num`:显示匹配行之前的num行。 - `-C num`:...
重磅送出,一个网站的字符串匹配算法讲解,以及算法实现的演示。希望在字符串匹配算法这方面有研究的。看了这里面的东西,保证你不再去找别的东西去看了。经典中的经典。这是把一个网站的一个链接目录完全下载,是...
4. **-l**:查询多文件时只输出包含匹配字符的文件名。 5. **-n**:显示匹配行及其行号。 6. **-s**:不显示不存在或无匹配文本的错误信息。 7. **-v**:显示不包含匹配文本的所有行。 #### 五、示例分析 为了更好...
- 使用参数`-c`仅统计匹配的行数。 - 命令格式:`grep -c "被查找的字符串" 文件名` - 或者通过管道结合`wc -l`命令来实现相同功能。 - 命令格式:`grep "被查找的字符串" 文件名 | wc -l` 7. **递归搜索目录**...
* `\(..\)`:标记匹配字符 * `\单词的开始 * `\>`:单词的结束 * `x\{m\}`:重复字符 x,m 次 * `x\{m,\}`:重复字符 x,至少 m 次 * `x\{m,n\}`:重复字符 x,至少 m 次,不多于 n 次 * `\w`:匹配文字和数字字符 *...
grep的工作原理是遍历一个或多个文件,寻找与给定的字符串模板匹配的行,搜索结果仅输出到屏幕,不会改变原文本内容。此外,grep还支持在shell脚本中使用,通过返回不同的状态值(0表示成功,1表示未找到,2表示文件...