sed用法总结
在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