格式:sed options ‘[Address]Command;[Address]Command;…’ FILE

image.png

一,文本替换

1.在命令行定义编辑命令

用法:sed ‘s/cat/dog’ 文件
实战:
image.png

2.在命令行上使用多个编辑器命令(-e)

用法:sed -e ‘s/bad/good/;s/cat/dog/‘ 文件**
image.png

3.从文件中读取编辑器命令(-f)

用法:sed -f /yyk/data1.sed /yyk/data1
image.png

4.更多的替换选项

  • 替换标记:s/pattern/replacement/flag

数字:表明新文本将替换第几次模式匹配的地方
g:表示新文本将替换所有匹配的文本
p:表明原先行的内容并输出
w:将替换的结果写到文件中

  • -n选项进制sed编辑器输出,与p搭配,则是将修改过的行输出出来。

实战:sed -n ‘s\cat\dog\p’ /yyk/data1
image.png

  • 字符串分隔符(!):有时候替换文件的路径的时候,由于正斜线(/)用作分隔符,这时候地址,如/usr/bin/bash中的正斜杠就要反斜杠转义普通字符。但是如果用(!)作为分隔符号,name路径名就浅显易懂。

使用(\转义字符):sed ‘s/\/bin\/bash/\/bin\/csh/‘ /etc/passwd
image.png

推荐使用(!)作为分割符号:sed ‘s!/bin/bash!/bin/csh!’ /etc/passwd
image.png

二.使用地址替换

1.数字方式寻址

格式:sed ‘数字s/cat/dog’ 文件
实战:

  • sed ‘2s/cat/dog/‘ /yyk/data1
  • sed ‘2,3s/cat/dog/‘ /yyk/data1
  • sed ‘2,$s/cat/dog/‘ /yyk/data1

image.png

2.文本过滤器

用法:/pattern/command
实战:sed ‘/yyk/s/bash/csh/‘ /etc/passwd
image.png实战:sed ‘/yyk/s!bash!csh!’ /etc/passwd
image.png

三,删除行

用法:

  • sed ‘3d’ 文件
  • sed ‘2,3d’ 文件
  • sed ‘2,$d’ 文件
  • sed ‘/pattern/d’ 文件

image.png

四,插入命令

插入(insert)命令(i) :i\STR
附加(append)命令(a) :a\STR
修改(change)命令(c):c\STR
实战:
文本内容:
image.png
命令:

  • sed ‘3i\i am handsome’ /yyk/data2
  • sed ‘3a\i am handsome’ /yyk/data2
  • sed ‘3c\i am handsome’ /yyk/data2

image.png

五,转换命令

用法:[addess]y/inchars/outchars
解释:一 一对应的转换
实战:echo “123456789” | sed ‘y/123/789/‘
image.png