在linux中sed是很常用的工具,用它可以迅速的增删改文件而无需人工操作,比如批量替换等.
以下用例子和格式两种方式简要示例.

基本yongf

sed -i 's/Search_String/Replacement_String/g' Input_File

特殊符号:
1.加\进行转义:
. * [ ] ^ $ { } \ + ? | ( ),此类特殊符号在其前加\即可,
例如:sed -i "s/c://c:/g"将c:/换成c:,sed -i "s/[c]/c/g"将[c]换成c.

2.\本身的处理:
\\=\
例如:sed -i "s/\\你\\好/你好/g",将\你\好换成了你好

3.变量的处理:
注意含变量的sed外部应该用"
例如:sed -i "s/$beforeName/$afterName/g"

4.单双引号的处理:
一个好习惯是sed尽量用",而内容有双号"时进行转义它为\"

5.分隔符除了/还可以任意:
例如:sed -i "s#你好呀#你呀#"

# sed 's/unix/linux/' sed-test.txt

1 Unix linux unix 23

2 linux Linux 34

3 linuxlinux UnixLinux

linux /bin/bash CentOS Linux OS

Linux is free and opensource operating system

2) 如何查找和替换每一行中“第 N 次”出现的模式

在行中使用/1、/2……/n 等标志来代替相应的匹配。

下面的 sed 命令在一行中用 linux 来替换 unix 模式的第二个实例。

# sed 's/unix/linux/2' sed-test.txt

1 Unix unix linux 23

2 linux Linux 34

3 linuxunix UnixLinux

linux /bin/bash CentOS Linux OS

Linux is free and opensource operating system

3) 如何搜索和替换每一行中所有的模式实例

下面的 sed 命令用 linux 替换 unix 格式的所有实例,因为 g 是一个全局替换标志。

# sed 's/unix/linux/g' sed-test.txt

1 Unix linux linux 23

2 linux Linux 34

3 linuxlinux UnixLinux

linux /bin/bash CentOS Linux OS

Linux is free and opensource operating system

4) 如何查找和替换一行中从“第 N 个”开始的所有匹配的模式实例

下面的 sed 命令在一行中替换从模式的“第 N 个”开始的匹配实例。

# sed 's/unix/linux/2g' sed-test.txt

1 Unix unix linux 23

2 linux Linux 34

3 linuxunix UnixLinux

linux /bin/bash CentOS Linux OS

Linux is free and opensource operating system

标签: none

添加新评论