sed编辑器
时间:2010-08-09 来源:chinawanglun
sed(stream editor),流编辑器,是一个批处理编辑器,它可以对来自文件或者标准输入输出流进行处理
sed的语法格式如下:
sed [-n] 程序 [-i] 文件
sed [-n] -f 程序文件 [-i]文件
-n 仅显示处理后的结果 文件就是要处理的文件,如果没有文件,则从标准输入获取输入流 程序就是在命令行中输入的程序; 程序文件就是将多个sed的程序段写文件文件中,然后使用-f选项来使用程序文件,而不用在命令行输入 。 使用-i参数,sed将执行结果不输出到标准输出,而是输出到原文件中
sed程序由一行或者多行命令组成 sed 命令的格式如下: [地址[,地址]] 指令 [参数列表]
如果想要多个sed命令放在一行,可以使用;进行分隔 行号可以作为地址来选择某一行。 正则表达式可以用来选择符合条件的行做为地址 如果没有指定地址,则sed处理所有行
指令: d 删除 sed ‘/aaa/d’ file 删除file中含有aaa的行 a 追加,在指定的行的下一行后边追加文本 sed ‘1,3 a hello world’ 在第1到3行的每一行的下一行追加hello world
i 插入,在指定行的前一行插入文本 sed ‘1 i hello world’ file 在第1行 的前一行插入hello world c 修改 ,修改指定行的内容 sed ‘2 c hello world’ file 将第二行的内容修改为hello world s 替换,将指定行中的符合要求的文本替换为指定文本 格式: [address[,address]] s/模式/替换内容/[g] [p] [w 文件] 模式是一个正则表达式 g、p、w为可选内容 g 全部替换,否则只替换每行中第一个符合模式的文本 p 将选定的行(替换后的)写入标准输出 w 将选定的行(替换后的)写入到标注文件中 sed 's/a\{5,\}/bbbbb/g' file 将aaaaa替换为bbbbb sed ‘s/hello/bbbbb/g w text’ file 将aaaaa替换为bbbbb 并且将选定的行写入到文件text中 sed ‘s/hello/&1 world/g’ 将hello替换hello world ,$代表搜索字符串
l 将不显示的字符打印出来 sed ‘l’ file w 将指定行写入到文件中 sed ‘2,5 w h’ text 将2到5行写入到文件h中 y 转换字符 格式 y/字母/字母/ sed ‘y/abc/xyz/’ file 将所有的字母a、b、c分别转换为x、y、z =打印行号 sed ‘=’ file ! 使得sed命令作用于没有被选中的每一行 sed ‘3!d’ file 删除除第3行之外的所有行 sed ‘/a/!d’ file 删除不含a的所有行 sed ‘s/a/d/’
-n 仅显示处理后的结果 文件就是要处理的文件,如果没有文件,则从标准输入获取输入流 程序就是在命令行中输入的程序; 程序文件就是将多个sed的程序段写文件文件中,然后使用-f选项来使用程序文件,而不用在命令行输入 。 使用-i参数,sed将执行结果不输出到标准输出,而是输出到原文件中
sed程序由一行或者多行命令组成 sed 命令的格式如下: [地址[,地址]] 指令 [参数列表]
如果想要多个sed命令放在一行,可以使用;进行分隔 行号可以作为地址来选择某一行。 正则表达式可以用来选择符合条件的行做为地址 如果没有指定地址,则sed处理所有行
指令: d 删除 sed ‘/aaa/d’ file 删除file中含有aaa的行 a 追加,在指定的行的下一行后边追加文本 sed ‘1,3 a hello world’ 在第1到3行的每一行的下一行追加hello world
i 插入,在指定行的前一行插入文本 sed ‘1 i hello world’ file 在第1行 的前一行插入hello world c 修改 ,修改指定行的内容 sed ‘2 c hello world’ file 将第二行的内容修改为hello world s 替换,将指定行中的符合要求的文本替换为指定文本 格式: [address[,address]] s/模式/替换内容/[g] [p] [w 文件] 模式是一个正则表达式 g、p、w为可选内容 g 全部替换,否则只替换每行中第一个符合模式的文本 p 将选定的行(替换后的)写入标准输出 w 将选定的行(替换后的)写入到标注文件中 sed 's/a\{5,\}/bbbbb/g' file 将aaaaa替换为bbbbb sed ‘s/hello/bbbbb/g w text’ file 将aaaaa替换为bbbbb 并且将选定的行写入到文件text中 sed ‘s/hello/&1 world/g’ 将hello替换hello world ,$代表搜索字符串
l 将不显示的字符打印出来 sed ‘l’ file w 将指定行写入到文件中 sed ‘2,5 w h’ text 将2到5行写入到文件h中 y 转换字符 格式 y/字母/字母/ sed ‘y/abc/xyz/’ file 将所有的字母a、b、c分别转换为x、y、z =打印行号 sed ‘=’ file ! 使得sed命令作用于没有被选中的每一行 sed ‘3!d’ file 删除除第3行之外的所有行 sed ‘/a/!d’ file 删除不含a的所有行 sed ‘s/a/d/’
相关阅读 更多 +