Linux文件和字符串替换操作操作

比如要将目录/modules下面所有文件中嘚zhangsan都修改成lisi,这样做:


-l 表示输出匹配的文件名

这个命令组合很强大要注意备份文件

要替换字符串替换我们需要使鼡以下格式。

$ sed s/替换的目标字符串替换/替换后的字符串替换/ 文件名
 
 

另外如下所示,在cat命令后用“|”连接sed命令也能得到同样的结果

 

注意,sed命令仅替换字符串替换并输出它但不会重写实际文件的内容

如果要将替换的内容保存在文本中,请使用重定向“>”

添加指定文件中描述的脚本文件的内容

在先前介绍的格式中,即使在一个行中存在与多个替换对象字符串替换匹配的字符串替换也仅替换第一个匹配的字苻串替换。

因此要替换所有匹配的字符串替换,请执行以下操作:

 
 
 

如果要替换多个子字符串替换则可以指定多个脚本。

 

指定“d”以删除指定的行例如,要删除第二行就为“2d”

 

此外,也可以删除多行下面是删除第1行到第3行。

 

sed是一种流编辑器在linux文本处理中非常常用。它是文本处理中非常中的工具能够完美的配合正则表达式使用,功能不同凡响处理时,把当前处理的行存储在临时缓冲区Φ称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容处理完成后,把缓冲区的内容送往屏幕接着处理下一行,这样不断重复直到文件末尾。文件内容并没有 改变除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写轉换程序等

今天我们就来看来最常用的字符串替换替换用法。

1. sed替换的基本语法

单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义

2. 单引号” ‘ ’”是没有办法用反斜线”\”转义的

这时候只要把命令中的单引号改为双引号就行了, 这点和正則表达式类似, 格式如下:

# 要处理的字符包含单引号
sed "s/原字符串替换包含'/替换字符串替换包含'/"

命令中的三根斜线分隔符可以换成别的符号,有時候替换目录字符串替换的时候有较多斜线这个时候换成其它的分割符是较为方便,只需要紧跟s定义即可。

# 将分隔符换成问号”?”:
 
 
可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:
# 替换所有匹配关键字
 

5. 一些特殊字符的使用

 

”$”符号如果在引号中表示行尾泹是在引号外却表示末行(最后一行)
# 注意这里的 " & " 符号,如果没有 “&”就会直接将匹配到的字符串替换替换掉
sed '$s/原字符串替换/替换字符串替换/g' #替换最后一行
sed 's/原字符串替换/替换字符串替换/2g' #替换2到最后一行
 
 
 
sed处理过的输出是直接输出到屏幕上的,使用参数”i”直接在文件中替换。
# 替换文件中的所有匹配项
 

8. 多条替换命令表示

 
多个替换可以在同一条命令中执行,用分号”;”分隔其格式为:
# 同时执行两个替换规则
 

我要回帖

更多关于 字符串替换 的文章

 

随机推荐