请教如何用sed实现这样的功能

sh/bash/dash/ksh/zsh等Shell脚本
回复
echo_mu
帖子: 21
注册时间: 2006-06-03 13:55

请教如何用sed实现这样的功能

#1

帖子 echo_mu » 2008-07-05 23:02

假设有如下一段文本
aaaaaaaaaaaaa
bbbbbbbb
ccccccc
ddddddddd
……

我要查找包含“cccc”的行,如果找到,同时显示找到行的下面或上面几行,记得以前看过,记不起来了。请大家帮忙!先谢谢了! :)
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12

#2

帖子 solcomo » 2008-07-05 23:14

代码: 全选

sed -n ':a;/ccccc/{p;q;};$q;N;3,$D;ba'
sed -n '/ccccc/{:a;N;${p;q;};/\(..*\n\)\{3\}/!ba;p;q;}'
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
alinmn
帖子: 185
注册时间: 2006-05-19 21:42
来自: NIT

#3

帖子 alinmn » 2008-07-06 22:27

grep 更简单一些
grep -A or -B or -C
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#4

帖子 BigSnake.NET » 2008-07-07 9:27

grep -A 1 -B 1 cccc
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复