Linux下在文件夹所有文件中查找相关内容
时间:2022-07-24
本文章向大家介绍Linux下在文件夹所有文件中查找相关内容,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
先导
本文是为了记录在编程中进行一些在文件夹中查找某些关键字进行配置时查找文件过于麻烦的解决办法 在Linux开发中使用一些命令或者命令的配合进行查找文件内容及匹配关键词还是比较方便的。
使用grep
grep是在使用Linux时经常会用到的一个命令了,这个命令平时大都主要用来进行对一段输出的关键字定位,但是这个命令也可以通过使用某些参数来达到文件夹文件内容遍历的效果
命令原型
grep -nr "str" path
参数说明
- grep: 就是grep命令
- -nr: n是line number行号,r是recursive,可以理解为遍历文件文件夹
- “str”: 双引号里面的str就是要查找的内容,用双引号何以使用空格和一些字符进行查找
- path: path就是查找路径,默认是
./
,也就是当前目录开始,也可以手动指定目录
实例
grep -nr "/bin/bash" /home/$USER
优缺点
- 优点:命令简单方便,简短
- 缺点:会遍历所有文件,效率较低
使用find、xargs和grep配合
find是查找指令,用来查找文件的;xargs可以将标准输入作为另一个命令的参数;grep上面已经解释过了。那么,如果使用find来循环查找文件,使用他输出的文件名作为参数给xargs,xargs再将文件名作为grep的参数输入,使用grep来查找文件内容进行定位不久可以实现文件内容查找了吗
命令原型
find path -name "PATTEN" | xargs grep -n "str" | grep "str"
参数说明
- find、xargs、grep:上面已经讲过,分别是三个软件
- name:就是通过名字查找,后面跟着的参数可以通过正则表达式类似的方法限定文件名
- 其他grep或者类似的参数据不赘述了
实例
find /home/$USER/.config -name "*.sh" | xargs grep "/bin/bash" | grep "/bin/bash"
优缺点
- 优点:可以通过-name来限定文件名,从而减少grep查看文件内容的次数,提高效率
- 缺点:命令冗长,难记
后记
关于这两种方法的取舍其实还是看日常使用过程,如果文件夹内的文件较少,可以使用第一种方法,方便快捷;但是如果文件很多的情况下为了节省查找时间,可以使用第二种方法,能够较为快速地查找到想要的内容。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python Scrapy图片爬取原理及代码实例
- Python-for循环的内部机制
- 解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
- 基于python实现模拟数据结构模型
- keras的siamese(孪生网络)实现案例
- 浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
- Python数据可视化图实现过程详解
- Python matplotlib 绘制双Y轴曲线图的示例代码
- keras 读取多标签图像数据方式
- python新手学习可变和不可变对象
- COS Android SDK DEMO搭建实践
- 利用COS多版本避免文件误删除
- kube-prometheus添加target
- 深入浅析python 中的self和cls的区别
- php中如何执行linux命令详解