返回列表 发帖

[问题求助] sed和gawk怎样删除文本指定行?

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

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

TOP

#保留最后一行删除其它行
sed "$!d" a.txt
sed -n "$p" a.txt
gawk "END{print}" a.txtCOPY

TOP

#保留第一行删除其它行
sed "1!d" a.txt
sed -n "1p" a.txt
sed "2,$d" a.txt
gawk "NR==1" a.txt
gawk "{print;exit}" a.txtCOPY

TOP

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

TOP

5# Hello123World


你觉得置顶贴里面的O'Reilly sed & awk 2nd Edition够不够系统?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

反复看吧,sed命令暂时没找到系统的教程,batman的实例教程也不错。

TOP

2:
sed "$d" a.txt
sed -n "$!p" a.txtCOPY
gawk "row{print row}{row=$0}" a.txt
gawk "NR>1{print row}{row=$0}" a.txt
gawk "{a[NR]=$0}END{for(i=1;i<=NR-1;i++)print a[i]}" a.txtCOPY
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

1:
sed "1d" a.txt
sed -n "1!p" a.txt
sed "2,$!d" a.txt
sed -n "2,$p" a.txtCOPY
gawk "NR>1" a.txt
gawk "NR!=1" a.txt
gawk "NR>=2" a.txt
gawk "{if(NR==1)next}1" a.txtCOPY
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

sed "1d" 1.txt
::1、删除第一行
sed "$d" 1.txt
::2、删除最后一行
sed "3,5d" 1.txt
::3、删除第三行到第五行
sed "1!d" 1.txt
::4、保留第一行删除其它行
sed "$!d" 1.txt
::5、保留最后一行删除其它行
sed "3,5!d" 1.txt
::6、保留第三行到第五行删除其它行COPY

TOP

返回列表