Linux sed常规用法小结

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      China  

1、打印指定行

a)打印第一行

[root@localhost .shell]# sed -n '1p' orig.txt    id      name    price   address  

b)打印3-5行

[root@localhost .shell]# sed -n '3,5p' orig.txt    1       apple   $50     USA   2       pear    $60     Canda   3       pen     $1      China  

c)打印最后一行

[root@localhost .shell]# sed -n '$p' orig.txt    total   $111  

d)打印所有行

[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   $111  

e)打印含有pen的行

[root@localhost .shell]# sed -n '/pen/p' orig.txt    3       pen     $1      China  

f)从第一行开始打印,打印到第一个含有$行

[root@localhost .shell]# sed -n '1,/\$/'p  orig.txt      id      name    price   address   -------------------------------   1       apple   $50     USA  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/22527.html