主页 > Linux教程 > 正文

Linux sed 指令字符串替换运用办法详解

sed是一种流修正器,在linux文本处理中十分常用。它是文本处理中十分中的东西,能够完美的合作正则表达式运用,功用与众不同。处理时,把当时处理的行存储在暂时缓冲区中,称为“形式空间”(pattern space),接着用sed指令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件结尾。文件内容并没有 改动,除非你运用重定向存储输出。Sed首要用来主动修正一个或多个文件;简化对文件的重复操作;编写转化程序等。

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


1. sed替换的根本语法

sed 's/原字符串/替换字符串/'

单引号里边,s表明替换,三根斜线中心是替换的款式,特别字符需求运用反斜线”\”进行转义。

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

这时分只要把指令中的单引号改为双引号就行了, 这点和正则表达式相似, 格局如下:

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

3. 替换分隔符 

指令中的三根斜线分隔符能够换成其他符号,有时分替换目录字符串的时分有较多斜线,这个时分换成其它的切割符是较为便利,只需求紧跟s界说即可。

# 将分隔符换成问号”?”:
sed 's?原字符串?替换字符串?'


4. 匹配关键字g

能够在结尾加g替换每一个匹配的关键字,不然只替换每行的第一个,例如:

# 替换一切匹配关键字
sed 's/原字符串/替换字符串/g'


5. 一些特别字符的运用

”^”表明行首

”$”符号假如在引号中表明行尾,但是在引号外却表明末行(最终一行)

  

# 留意这儿的 " & " 符号,假如没有 “&”,就会直接将匹配到的字符串替换掉
sed 's/^/增加的头部&/g'      #在一切行首增加
sed 's/$/&增加的尾部/g'      #在一切行末增加
sed '2s/原字符串/替换字符串/g'  #替换第2行
sed '$s/原字符串/替换字符串/g'   #替换最终一行
sed '2,5s/原字符串/替换字符串/g' #替换2到5行
sed '2,$s/原字符串/替换字符串/g' #替换2到最终一行
sed 's/原字符串/替换字符串/2g'   #替换2到最终一行


6.批量替换字符串

sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 途径`
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir


7. 输出参数i

sed处理过的输出是直接输出到屏幕上的,运用参数”i”直接在文件中替换。

# 替换文件中的一切匹配项
sed -i 's/原字符串/替换字符串/g' filename


8. 多条替换指令表明

多个替换能够在同一条指令中履行,用分号”;”分隔,其格局为:

# 一起履行两个替换规矩
sed 's/^/增加的头部&/g;s/$/&增加的尾部/g'


上一篇:Linux求两个文本文件的交集、差集、并集
下一篇:awk内置变量NR与FNR运用详解

PythonTab微信大众号:

Python技能交流合作群 ( 请勿加多个群 ):

群1: 87464755

群2: 333646237

群3: 318130924

群4: 385100854