Linux sed常规用法小结

字体大小: 中小 标准 ->行高大小: 标准

sed是一个非交互性的流编辑器,是stream editor的缩写。sed每次只处理一行内容,可以对文本或标准输入流进行处理。需要注意的是,sed并不直接操作初始数据,它操作的是一份原始数据的拷贝。sed处理时,把当前处理的行存储在临时缓冲区中,然后处理缓冲区中的内容,处理完成后,如果没有重定向到文件, 将把缓冲区中的内容送往屏幕,接着处理下一行直到处理完毕。

理论的东东,这里不谈了,下面谈些常规应用吧。

在演示之前,我们先构筑个初始文件orig.txt 和append.txt

  1. [root@localhost .shell]# cat orig.txt  
  2. id      name    price   address  
  3. --------------------------------     
  4. 1       apple   $50     USA  
  5. 2       pear    $60     Canda  
  6. 3       pen     $1      China      
  7. --------------------------------         
  8. total   $111  
  9. [root@localhost .shell]# cat append.txt   
  10. 4       apple   $50     USA  
  11. 5       $60     Canda  
  12. 6       pen     $1      China  

1、打印指定行

a)打印第一行

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

b)打印3-5行

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

c)打印最后一行

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

d)打印所有行

  1. [root@localhost .shell]# sed -n '1,$p' orig.txt   
  2. id      name    price   address  
  3. -------------------------------  
  4. 1       apple   $50     USA  
  5. 2       pear    $60     Canda  
  6. 3       pen     $1      China  
  7. --------------------------------  
  8. total   $111  

e)打印含有pen的行

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

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

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

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/57691.html