sed是一个非交互性的流编辑器,是stream editor的缩写。sed每次只处理一行内容,可以对文本或标准输入流进行处理。需要注意的是,sed并不直接操作初始数据,它操作的是一份原始数据的拷贝。sed处理时,把当前处理的行存储在临时缓冲区中,然后处理缓冲区中的内容,处理完成后,如果没有重定向到文件, 将把缓冲区中的内容送往屏幕,接着处理下一行直到处理完毕。
理论的东东,这里不谈了,下面谈些常规应用吧。
在演示之前,我们先构筑个初始文件orig.txt 和append.txt
[root@localhost .shell]# cat orig.txt id name price address -------------------------------- 1 apple $50 USA 2 pear $60 Canda 3 pen $1 China -------------------------------- total $111 [root@localhost .shell]# cat append.txt 4 apple $50 USA 5 $60 Canda 6 pen $1 China1、打印指定行
a)打印第一行
[root@localhost .shell]# sed -n '1p' orig.txt id name price addressb)打印3-5行
[root@localhost .shell]# sed -n '3,5p' orig.txt 1 apple $50 USA 2 pear $60 Canda 3 pen $1 Chinac)打印最后一行
[root@localhost .shell]# sed -n '$p' orig.txt total $111d)打印所有行
[root@localhost .shell]# sed -n '1,$p' orig.txt id name price address ------------------------------- 1 apple $50 USA 2 pear $60 Canda 3 pen $1 China -------------------------------- total $111e)打印含有pen的行
[root@localhost .shell]# sed -n '/pen/p' orig.txt 3 pen $1 Chinaf)从第一行开始打印,打印到第一个含有$行
[root@localhost .shell]# sed -n '1,/\$/'p orig.txt id name price address ------------------------------- 1 apple $50 USA