grep命令-Linux字符串查找

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

最近用到了平时经常用的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=文件目录名(路径)

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

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

猜你喜欢

转载自blog.csdn.net/m0_37263637/article/details/83417271
今日推荐