grep进阶用法

Linux环境每天用得最多的命令就是grep,这里把一些稍微进阶的用法整理一下

常用选项

可以参见man grep或者grep命令,最常用的选项如下:

-v 反转查找
-w 只显示全字符合的列
-i 忽略字符大小写的差别
-o 只输出文件中匹配到的部分
-n 显示列号
-F 禁用正则表达式(用来搜索包含正则表达式特殊字符的的场景)

正则表达式

命令示例:

grep -E "[0-9]+" sentence.txt
-E 扩展的正则表达式
-P Perl正则表达式(支持一些高级用法,比如先行断言、后发断言、负向零宽断言等)

支持

# 特殊字符
[0-9] # 集合
[^0-9] #不在集合 
(hello|world)       # 或
\s    #空字符(空格,Tab,换行)
\b   # 字符开始
\w   #数字、字母、下划线
^     # 行首
$   # 行尾
# 计数
?
*
+
{n}
{n,}
{,m}
{n,m}

\d #一般正则表达式都有\d,表示数字,grep不支持。可以使用[0-9]表示

常见grep用法

  • 单词出现的次数
grep -o word sentence.txt | wc -l
  • 包含单词的行数
grep -c word sentence.txt
  • 找到特定数字并反向排序
grep -Po "(?<=cost: )[0-9]+" all.log

这里使用了Perl正则

  • kill进程
ps -ef | grep java | grep -v "grep" | awk '{print $2}' | xargs kill

Linux命令进阶用法系列

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Prometheus for Spring MVC

    跟Spring Boot配置方法一直:参考 Prometheus for Spring Boot

    十毛
  • ElasticSearch监控工具 - cerebro

    ps: kopf的github首页就表明该项目不再维护,推荐使用cerebro;bigdesk也只支持ElasticSearch1.3及以下版本

    十毛
  • Spring Boot缓存配置不同到期时间

    这种方式可以实现不同缓存的不同到期时间,但是后面再新增缓存数据的话,都需要再在CacheManager中配置

    十毛
  • 【Go 语言社区】linux 下Go服务器部署(也同样适合C++等)

    作为服务器开发人员,GO语言内网测试数据及调试肯定很简单,如果你在Windows下开发 直接编成EXE执行就可以,然后部署外网在打包成linux的执行文件(交...

    李海彬
  • Linux常用命令03 - grep

    grep 命令代表“全局正则表达式 print” ,它是 Linux 中最强大和最常用的命令之一。

    叉叉敌
  • Linux - 常用命令:grep

    参数 -c 只输出匹配行的个数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n...

    以谁为师
  • linux服务器被植入ddgs、qW3xT.2挖矿病毒的处理实战记录

    随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一。病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用...

    砸漏
  • 记一次感染挖矿病毒的经历

        下午五点十分、手机开始狂收阿里云ECS实例告警,所有告警都提示机器CPU满载。

    尚浩宇
  • 一条命令完成Linux下批量杀死某应用程序相关的进程

    版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

    耕耘实录
  • linux grep工作常用

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

    bear_fish

扫码关注云+社区

领取腾讯云代金券