linux替换字符串
2016-07-11 09:47
363 查看
(一)vi编辑器命令
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用编辑软件进行替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g
可以把文件中所有路径/usr/bin换成/bin
(二)perl(不用打开文件,可替换多文件)
例1
执行命令:
perl -p -i -e "s/China/Sumly/g" /www/*.htm /www/*.txt
上面的意思是说将www文件夹下所有的htm和txt文件中的“China”都替换为“Sumly”
例2
执行命令:
perl -p -i -e "s/memory_production/memory_production2/g" ./*.sql
上面的意思是将当前目录下所有的sql文件中的“memory_production”替换成“memory_production2”
(三)sed 批量替换
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
Svn中文网
linux sed 批量替换多个文件中的字符串
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的www.admin99.net为admin99.net Bbs.Svn8.Com
sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`
Bbs.Svn8.Com
exp:sed -i "s/shabi/$/g" `grep shabi -rl ./` Svn8.Com
2、自己额外附加 Svn8.Com
2.1 将文件1.txt内的文字“garden”替换成“mirGarden”
# sed -i "s/garden/mirGarden/g" 1.txt //sed -i 很简单
2.2 将当前目录下的所有文件内的“garden”替换成“mirGarden”
## sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用编辑软件进行替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g
可以把文件中所有路径/usr/bin换成/bin
(二)perl(不用打开文件,可替换多文件)
例1
执行命令:
perl -p -i -e "s/China/Sumly/g" /www/*.htm /www/*.txt
上面的意思是说将www文件夹下所有的htm和txt文件中的“China”都替换为“Sumly”
例2
执行命令:
perl -p -i -e "s/memory_production/memory_production2/g" ./*.sql
上面的意思是将当前目录下所有的sql文件中的“memory_production”替换成“memory_production2”
(三)sed 批量替换
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
Svn中文网
linux sed 批量替换多个文件中的字符串
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的www.admin99.net为admin99.net Bbs.Svn8.Com
sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`
Bbs.Svn8.Com
exp:sed -i "s/shabi/$/g" `grep shabi -rl ./` Svn8.Com
2、自己额外附加 Svn8.Com
2.1 将文件1.txt内的文字“garden”替换成“mirGarden”
# sed -i "s/garden/mirGarden/g" 1.txt //sed -i 很简单
2.2 将当前目录下的所有文件内的“garden”替换成“mirGarden”
## sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已
相关文章推荐
- Linux和Windows间进程通信方式整理
- linux命令追加信任列表
- CentOS6.5安装中文支持
- Linux 下vsftp配置文件
- linux静态ip
- Linux如何进入终端界面
- linux下的程序调试方法汇总
- 面向对象处理机制VS面向结构处理机制
- 从U盘启动CentOS7的Live CD iso镜像
- 初识Linux(二)--命令行基本操作
- Linux系统I2C设备驱动编写方法
- fstatat()函数 Unix/Linux
- linux C之stat()
- linux下多线程之pthread_detach(pthread_self())
- linux 同步IO: sync、fsync与fdatasync
- 在 Linux 下使用任务管理器
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
- linux内核版本号命名的那点事
- Linux下EasyPanel版本安装及升级
- Linux网络配置 CentOS 6/7