Board logo

标题: [问题求助] sed和gawk怎样删除文本指定行? [打印本页]

作者: DAIC    时间: 2011-6-25 14:36     标题: sed和gawk怎样删除文本指定行?

想学习sed和gawk,搞不懂文本行的操作,请教下面这些操作分别有哪些实现方法:
1、删除第一行
2、删除最后一行
3、删除第三行到第五行
4、保留第一行删除其它行
5、保留最后一行删除其它行
6、保留第三行到第五行删除其它行
作者: CrLf    时间: 2011-6-25 14:56

  1. sed "1d" 1.txt
  2. ::1、删除第一行
  3. sed "$d" 1.txt
  4. ::2、删除最后一行
  5. sed "3,5d" 1.txt
  6. ::3、删除第三行到第五行
  7. sed "1!d" 1.txt
  8. ::4、保留第一行删除其它行
  9. sed "$!d" 1.txt
  10. ::5、保留最后一行删除其它行
  11. sed "3,5!d" 1.txt
  12. ::6、保留第三行到第五行删除其它行
复制代码

作者: Batcher    时间: 2011-6-25 15:46

1:
  1. sed "1d" a.txt
  2. sed -n "1!p" a.txt
  3. sed "2,$!d" a.txt
  4. sed -n "2,$p" a.txt
复制代码
  1. gawk "NR>1" a.txt
  2. gawk "NR!=1" a.txt
  3. gawk "NR>=2" a.txt
  4. gawk "{if(NR==1)next}1" a.txt
复制代码

作者: Batcher    时间: 2011-6-25 16:28

2:
  1. sed "$d" a.txt
  2. sed -n "$!p" a.txt
复制代码
  1. gawk "row{print row}{row=$0}" a.txt
  2. gawk "NR>1{print row}{row=$0}" a.txt
  3. gawk "{a[NR]=$0}END{for(i=1;i<=NR-1;i++)print a[i]}" a.txt
复制代码

作者: Hello123World    时间: 2011-6-27 12:49

http://bbs.bathome.net/thread-1954-1-1.html

反复看吧,sed命令暂时没找到系统的教程,batman的实例教程也不错。
作者: Batcher    时间: 2011-7-10 11:19

5# Hello123World


你觉得置顶贴里面的O'Reilly sed & awk 2nd Edition够不够系统?
作者: CUer    时间: 2011-7-30 11:50

  1. #删除第三行到第五行
  2. sed "3,5d" a.txt
  3. sed -n "1,2p;6,$p" a.txt
  4. gawk "NR<3||NR>5" a.txt
  5. gawk "!(NR>=3&&NR<=5)" a.txt
复制代码

作者: CUer    时间: 2011-7-30 11:50

  1. #保留第一行删除其它行
  2. sed "1!d" a.txt
  3. sed -n "1p" a.txt
  4. sed "2,$d" a.txt
  5. gawk "NR==1" a.txt
  6. gawk "{print;exit}" a.txt
复制代码

作者: CUer    时间: 2011-7-30 11:50

  1. #保留最后一行删除其它行
  2. sed "$!d" a.txt
  3. sed -n "$p" a.txt
  4. gawk "END{print}" a.txt
复制代码

作者: CUer    时间: 2011-7-30 11:51

  1. #保留第三行到第五行删除其它行
  2. sed "3,5!d" a.txt
  3. sed -n "3,5p" a.txt
  4. sed "1,2d;6,$d" a.txt
  5. gawk "!(NR<3||NR>5)" a.txt
  6. gawk "NR>=3&&NR<=5" a.txt
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2