Linux中替换文件中的字符串
来源:互联网 发布:多线程ping java 编辑:程序博客网 时间:2024/05/18 02:40
1、vim
假定先有多个txt文件,需将所有文件中的变量"well"改为"good":
vi/vim 中可以使用 :s 命令来替换字符串。
:s/well/good/ 替换当前行第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin
2、perl
可以执行以下命令:
find . -name '*.c' -print0 | xargs -0 perl -pi -e 's/well/good/g'
xargs 把find命令的结果作为perl的参数。
find的参数-print0和xargs的参数-0是防止文件名中有空格或新行造成错误,可以man xargs获得帮助。
注意: 如果替换的字符包括 ()[]/"'!? 等等这样的特殊字符,你必须在字符前加上反斜杠\ 。
优点:不用启动编辑器,比较迅速。
缺点:容易出现不想要的替换,例如:把pwell替换成了pgood。
3、sed
可以执行以下命令:
find . -name "*.c" -print0 | xargs -0 sed -i 's/well/good/g'
优缺点和perl方法相同。
假定先有多个txt文件,需将所有文件中的变量"well"改为"good":
vi/vim 中可以使用 :s 命令来替换字符串。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 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
2、perl
可以执行以下命令:
find . -name '*.c' -print0 | xargs -0 perl -pi -e 's/well/good/g'
xargs 把find命令的结果作为perl的参数。
find的参数-print0和xargs的参数-0是防止文件名中有空格或新行造成错误,可以man xargs获得帮助。
注意: 如果替换的字符包括 ()[]/"'!? 等等这样的特殊字符,你必须在字符前加上反斜杠\ 。
优点:不用启动编辑器,比较迅速。
缺点:容易出现不想要的替换,例如:把pwell替换成了pgood。
3、sed
可以执行以下命令:
find . -name "*.c" -print0 | xargs -0 sed -i 's/well/good/g'
优缺点和perl方法相同。
- Linux中替换文件中的字符串
- linux sed 批量替换文件中的字符串
- Linux批量替换多文件中的字符串
- Linux中替换文本中的字符串
- Linux中替换文本中的字符串
- Linux中替换文本中的字符串
- Linux中替换文本中的字符串
- Linux中替换文本中的字符串
- Linux中替换文本中的字符串
- 替换文件中的字符串
- linux sed 批量替换文本多个文件中的字符串
- linux sed 批量替换多个文件中的字符串
- linux sed 批量替换多个文件中的字符串
- linux sed 批量替换多个文件中的字符串
- linux -- 批量替换多个文件中的某个字符串
- linux sed 批量替换多个文件中的字符串
- linux sed 批量替换多个文件中的字符串
- linux 批量替换多个文件中的字符串
- java 中break和continue的区别
- SQL Server视频
- shape的使用
- AJAX 跨域请求 – JSONP的使用,PHP实例详解
- 循环陷阱
- Linux中替换文件中的字符串
- 简单的缓冲区溢出
- STL vector用法
- 二叉树遍历
- openembedded git-fetch过程
- linux Shell 中常用的条件判断
- (转)Lucene,Nutch,Hadoop 之间有什么关系?
- 13个JavaScript图表图形绘制插件
- 深入Struts2的配置文件