Linux查找含有某字符串文件并批量替换

简介: Linux查找含有某字符串文件并批量替换
一. 查找文本
1.使用grep查找

如果你想在当前目录下查找hello,world!字符串,可以这样:

grep -rn "hello,world!" *

*: 表示当前目录所有文件,也可以是某个文件名

-r 是递归查找

-n是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

下面是一些有意思的命令行参数:

  • grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
  • grep -l pattern files :只列出匹配的文件名,
  • grep -L pattern files :列出不匹配的文件名,
  • grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配magic,而不是magical),
  • grep -C number pattern files :匹配的上下文分别显示[number]行,
  • grep pattern1 | pattern2 files :显示匹配 pattern1pattern2 的行,
  • grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

这里还有些用于搜索的特殊符号:

\<\> 分别标注单词的开始与结尾。

例如:

grep man *会匹配 Batmanmanicman等,

grep '\<man' * 匹配manicman,但不是Batman

grep '\<man\>'只匹配man,而不是Batmanmanic等其他的字符串。

'^':指匹配的字符串在行首,

'$':指匹配的字符串在行尾,

2. xargs配合grep查找
find -type f -name '*.php'|xargs grep 'GroupRecord'

这个比较常用, 意思是在当前目录下查询php文件,然后再过滤GroupRecord

二. 批量替换文本

vi或者vim模式下使用,语法如下:

%s/a/w/g

其中s为:substitute,%表示所有行,g表示global

示例

%s/data/devicelog/g

data替换成devicelog,注意如果有/,需要转义\/

相关文章
|
1天前
|
固态存储 Ubuntu Linux
Linux(29) 多线程快速解压缩|删除|监视大型文件
Linux(29) 多线程快速解压缩|删除|监视大型文件
10 1
|
1天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(24) 如何在Ubuntu中操作rootfs.img文件
Linux(24) 如何在Ubuntu中操作rootfs.img文件
2 0
|
4天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
16 0
|
6天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
12 0
|
8天前
|
Linux Shell 开发工具
Linux文件常用操作
Linux文件常用操作(几乎覆盖所有日常使用)
81 0
|
9天前
|
Linux 内存技术 Perl
【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件
【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件
|
15天前
|
Linux
linux 超过4个G的文件传不上去的解决办法
linux 超过4个G的文件传不上去的解决办法
9 0
|
15天前
|
Linux 索引
linux 文件查找 和文件管理常用命令
linux 文件查找 和文件管理常用命令
22 0
|
17天前
|
Linux 开发者
Linux文件编程(open read write close函数)
通过这些函数,开发者可以在Linux环境下进行文件的读取、写入和管理。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
85 4
|
17天前
|
监控 Linux