linux 查找替换
查找
find [路径] <表达式>
查找文件
-name <表达式> 根据文件名查找文件
-iname <表达式> 根据文件名查找文件,忽略大小写
-path <表达式> 根据路径查找文件
-ipath <表达式> 根据路径查找文件,忽略大小写
-amin <分钟> 过去N分钟内访问过的文件
-atime <天数> 过去N天内访问过的文件
-cmin <分钟> 过去N分钟内修改过的文件
-ctime <天数> 过去N天内修改过的文件
-anewer <参照文件> 比参照文件更晚被读取过的文件
-cnewer <参照文件> 比参照文件更晚被修改过的文件
-size <大小> 根据文件大小查找文件,单位b c w k M G
-type <文件类型> 根据文件类型查找文件。b 块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 l 链接 s 端口文件
-user <用户名> 按归属用户查找文件
-uid <uid> 按UID查找文件
-group <群组名> 按归属群组查找文件
-gid <gid> 按GID查找文件
-empty 查找空文件
从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"
系统查找到httpd.conf文件后即时在屏幕上显示httpd.conf文件信息。
find/-name"httpd.conf"-ls
在根目录下查找某个文件
find . -name "test"
在某个目录下查找包含某个字符串的文件
grep -r "zh_CN" ./
查找替换
批量查找并替换文件内容。
# sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" ./`
对于单个文件,使用sed命令很容易做到。如果需要替换某个指定文件夹下所有文件,借助grep和sed组合成一条命令也可以轻松搞定。
grep命令可以查找单个文件或文件夹下文件中的内容,使用参数“r”或“-R”可以递归查找指定文件夹下的所有文件;
参数“l”可以让grep输出包含指定字符串的文件名,首次匹配成功后立刻停止对同文件的查询。
如果不使用“l“,grep查询单个文件时输出文件中所有包含指定字符串的行,对文件夹查询时则按照“文件名:包含字符串行”的方式输出。
有了上面提到的知识,执行批量替换的命令可以写为:
grep "netingcn" -rl /assign-path | xargs sed -i 's/netingcn/ingcn/g'
或
sed -i 's/netingcn/ingcn/g' `grep "netingcn" -rl /assign-path`
还有一种比较复杂的写法:
grep "netingcn" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/netingcn/ingcn/g'
其中命令awk用于分割字符串、uniq对结果进行除重。
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
将当前目录下的所有文件内的“garden”替换成“mirGarden”
sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做:
sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules`
解释一下:
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
删除 rm + find
find PATH -name REGX | xargs rm -rf
转载于:https://www.cnblogs.com/conncui/p/linuxshell.html
linux 查找替换相关推荐
- linux里面查找替换命令,LINUX 查找替换命令 总结
find /var/ -name "*.php" > /home/tmp 在/var/目录下查找 所有以.php后缀结尾的文件 结果很多,就 > 输出结果到/home ...
- linux查找替换grep以及正则表达式
grep 文本内容过滤的命令 grep [option] 'pattern' file grep,egrep,fgrep 模式,正则表达式 ...
- linux 文件转换ascii,linux 小技巧(查找替换文件中的ascii编码字符)
这里纪录一些linux下用到的小技巧,以免遗忘 在linux中经常碰见各种文件处理.最常用的就是替换文件中的某些字符.常见字符替换还是很容易完成.但是有些不可见字符以及ascii编码字符等等都无法直接 ...
- linux中vim命令怎么查找替换,vim命令行快捷操作及查找替换
一.Vim命令行模式常见快捷方式 1. 三种主要模式: ① 命令(Normal)模式: 默认模式,移动光标,剪切/粘贴文本 ② 插入(Insert)或编辑模式: 修改文本 ③ 扩展命令(extende ...
- Vi/Vim查找替换使用方法
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian ...
- linux 批量替换所有文件中包含的字符串
sed -i "s/原来字符串/新字符串/g" `grep 原来字符串 -rl .`格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 ...
- vi查找替换命令详解
一.查找 查找命令 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串 使用了查找命令之 ...
- [转]Vi/Vim查找替换使用方法
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询. :s/vivian/sky/ 替换当前行第一个 vivian ...
- VIM 查找替换命令的使用
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能. :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/s ...
最新文章
- mysql配置文件构成以及具体的配置demo
- python多线程爬虫实例-python 多线程爬虫 实例
- mysql load 占位符_Mysql占位符插入
- 「面试」美团肝了我30+问题
- 职场中的那点事--小领导大智慧
- 结对开发2(求二维数组的最大子数组和)
- BitviseSSH绕过4A内网直连服务器
- rematch简单使用
- PSO算法及其对函数优化问题的处理+PSO算法改进
- 复杂边坡的ansys三维建模
- c语言负数与正数判断大小,c语言编程,输入一些整数,判断其中正数与负数的个数,并分别求出正数与负数的平均值...
- linux中etc下的hosts(本地IP解析)文件详解
- Cesium学习教程+笔记(Mars3D) 图层 图层组 矢量数据
- 音频均衡器 matlab code,急求高手 设计声音均衡器 滤波器
- 买一台 iPhone X,还是创建一家未来的独角兽? 1
- Craigslist :一个神奇的网站
- Task xxx not found in root project xxx.
- ubuntu重新获取IP地址
- 【stm32f103】引脚功能、工程简介与添加步骤
- 2020最受欢迎的7个vue管理后台框架