linux下如何删除文本文件中的匹配行及前后几行
原本的文件:$cattext.txtHelloNewWolrd.Gooddayhostpc1{Macaddress:abcIPaddress:qweUsername:zx...
原本的文件:
$ cat text.txt
Hello New Wolrd.
Good day
host pc1{
Mac address: abc
IP address: qwe
User name: zxc
}
$
查找"Mac address: abc",然后删除从前面一行(host pc1{)到之后三行(})的内容。
操作后文件变成这样:
$ cat text.txt
Hello New Wolrd.
Good day
$
如何用脚本实现这样的操作?sed,awk,vim都可以。
请高人指点下。多谢了! 展开
$ cat text.txt
Hello New Wolrd.
Good day
host pc1{
Mac address: abc
IP address: qwe
User name: zxc
}
$
查找"Mac address: abc",然后删除从前面一行(host pc1{)到之后三行(})的内容。
操作后文件变成这样:
$ cat text.txt
Hello New Wolrd.
Good day
$
如何用脚本实现这样的操作?sed,awk,vim都可以。
请高人指点下。多谢了! 展开
1个回答
展开全部
sed '/Mac address/,+3d;:go;1!{P;$!N;D};N;bgo' file
追问
;:go;1!{P;$!N;D};N;bgo
后面这几个命令什么作用?能给解释下不?
因为向前删除,现在是只要删除一行;如果也要向前删除多行,要怎么改?
多谢了!
追答
sed '/Mac address/,+3d;:go;1,3!{P;$!N;D};N;bgo' file
删除前3后3
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |