用行中的值替换多行。

时间:2014-10-01 21:27:56

标签: unix awk sed grep

> OTHER CODES
> OTHER CODES 
Want to remove this line>' {
Want to remove this line but keep Bob >id : 1 / @gateway="local" / @name="Bob / @views="500"
Want to remove this line>sample : 1
Want to remove this line>cash : 500
Want to remove this line>bets : 1
> OTHER CODES
> OTHER CODES
> OTHER CODES
> OTHER CODES
> OTHER CODES

您好我有大约500行代码,如上所示。我打算做的是以下删除除@ name =“Bob”之外的所有行,但也保留我的“其他代码”。有没有办法用grep + awk做到这一点?

目前我可以使用

grep -A 1 -B 3 "@name" ok 

抓住我想要的所有线条。名称可以根据用户进行更改。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我想你想要这样的东西,

$ grep -oP '@name=\S+|^>.*' file
> OTHER CODES
> OTHER CODES
@name="Bob
> OTHER CODES
> OTHER CODES
> OTHER CODES
> OTHER CODES
> OTHER CODES