sed
简介:非交谈式编辑器(vi和ex都属于交谈式编辑器)
采用非破坏性的编辑方式,也就是不会改变文件的内容,除非了使用输出转向,默认是所有的输出都
地址处 可以是数字或规则表达式,也可是两者的混合,若未指定地址,sed会处理输入文件
的每一行;EX: $sed '1,3d' testfile --删除1-3行,并显示其他行
$sed -n '/[Jj]onsh/p' testfile --打印出有jonsh或Jonsh的行
$sed '/Tom/!d' testfile--删除所有不包含Tom 的行
6)写入文件 w $sed -n '/north/w newfile' datafile ---取datafile中含有north的行,并写入到newfile文件中(若newfile中有信息,则会被覆盖)
简介:非交谈式编辑器(vi和ex都属于交谈式编辑器)
采用非破坏性的编辑方式,也就是不会改变文件的内容,除非了使用输出转向,默认是所有的输出都
会显示在屏幕上。
$sed -v(--version)查看sed版本
格式:sed 'command' filename地址处 可以是数字或规则表达式,也可是两者的混合,若未指定地址,sed会处理输入文件
的每一行;EX: $sed '1,3d' testfile --删除1-3行,并显示其他行
$sed -n '/[Jj]onsh/p' testfile --打印出有jonsh或Jonsh的行
$sed '/Tom/!d' testfile--删除所有不包含Tom 的行
command 选项有-e,-f,-n。-e是用来编辑几个文件;-f在sed命令文件前加上文件名;-n表示
略过输出
命令实例:(以datafile文件为例)
1)打印信息 p $sed '/west/p' datafile ---打印出所有信息,并把含有west的行打印两遍;
$sed -n '/west/p' datafile ---只打印出含有west的行
2)删除 d $sed '3d' datafile ---删除第三行并打印其他行;
$sed '4,$d' datafile ---删除从第四行到文件末尾的所有行,剩下的行会被打印出来
3)替换命令 s $sed 's/west/north/g' datafile --- 替换文件内所有的west 为north,其中,g表示全局,若无g,则只替换每行的第一个。(与vim中:/s/***/***/g 相同);
** $sed 's/[0-9][0-9]$/&.5/' datafile --- &代表在查找字符串里确实被找到的东西。这句话的意思就是:每
一行结尾是两个数字的,都会被她自己替换,并且在后面附加0.5;
** $sed 's#3##88#g' datafile
4)逗号 $sed -n '/west/,/east/p' datafile ---含有west 和east 字符的两行之间的所有行都会被打印出来(west 和east完全视那个先出现而定);
$sed -n '/west/,/east/s$/*LAT*/' datafile ---在west和east存在的所有行之间的结尾都加上 *LAT*
5)读取文件 r $sed '/susan/r newfile' datafile ---文件newfile的内容被读入文件datafile,插入到含有susan的行后面.6)写入文件 w $sed -n '/north/w newfile' datafile ---取datafile中含有north的行,并写入到newfile文件中(若newfile中有信息,则会被覆盖)