grep命令-Linux字符串查找

13 篇文章 1 订阅

最近用到了平时经常用的grep,但遇到全字匹配和排除文件,排除目录的操作。触及到知识盲区,特此去学习了解记录一下。如果遇到其他用法在添加编辑。

1 背景

在Linux环境中,有时会遇到程序报了些问题,但有没有标注所在位置,这里就需要一种方法去把它找出来。

比如在node中使用了new buffer()这个操作就带来了下列警告,有忘记了在哪里写了这个语句,所以想在当前目录找到 “new Buffer(” 这个语句在哪个文件哪一行。

node:9296) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

2 grep使用

Linux grep命令用于查找文件里符合条件的字符串。
grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。

2.1 基本用法

grep “待搜索内容” “文件路径”

grep "port" app.js   // 查询结果:   module.exports = app;

在 app.js文件中查找包含port的行

grep -n "port" app.js   // 查询结果:   121:module.exports = app;

在 app.js文件中查找包含port的行,并打印行号。
-n参数 打印行号

2.2 查询目录

grep -n -r "port" . 

查询当前目录下包含port的行,并打印行号。
-r 查询目录,且会递归整个目录。

2.3 通配查询

grep -n port *.js //app.js:121:module.exports = app;   
                            //errors.js:41:module.exports = {

在当前目录下 所有js文件中查找带port的行

2.4 全字匹配

grep -n  -w "port" app.js  

只显示全字符合的行,必须完全相同。

2.5 排除指定文件

grep -n  --exclude=app.js port *.js
--exclude=文件名 排除指定文件

搜索结果排除指定文件中的内容

2.6 排除指定目录

grep -n  --exclude-dir=node_modules port *.js
 --exclude-dir=文件目录名(路径)

搜索结果排除指定文件夹中的内容

忽略多个目录:

grep -r -n "deleteDevice" . --exclude-dir=node_modules --exclude-dir=public --exclude-dir=tools

2.7 grep配合管道筛选数据

sudo netstat -tlnp | grep "node"
netstat -tlnp 显示当前linux 网络状态

本人就经常使用上条语句查看node 占用的端口和node的PID。

3 参考链接

http://www.runoob.com/linux/linux-comm-grep.html
https://www.cnblogs.com/pengdonglin137/p/3569218.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值