Grep如何抓取前一行後兩行 - Linux

Dinah avatar
By Dinah
at 2011-11-26T20:42

Table of Contents

※ 引述《zchien (小建)》之銘言:
: ※ 引述《zchien (小建)》之銘言:
: : 不好意思...我使用的是UNIX系統
: : 我想請問一下...
: : 我記得抓關鍵字"AAA"..單行的指令應該是
: : grep "AAA" data.txt > result.txt
: : 會搜尋data.txt內的"AAA"的那行關鍵字...並且存在result.txt
: : 但是我希望能夠取這關鍵字的前一行...和後兩行...(包含AAA的關鍵字那行)
: : 總共需要四行...請問要如何用...
: : 有網友提供過...加入-B1 -A2參數...可以達成...
: : 但是我測試過 grep -B1 -A2 "*AAA*" data.txt > result.txt
: : 但是系統卻顯示無法辨識...-B1 -A2...
: : 而且我測試 man grep 也找不到..(但可能我英文不好..)_
: : 想請各位網友...在提供一下...是否有其他方法...
: : 還是有其他指令可以達成呢 ...謝謝
: 不好意思...重新提我一年前問過的問題
: 因為我目前還沒找到答案
: 我是用SunOS5.10
: 指令好像沒有支援grep -B1 -A2
: 有其他方式嗎
: awk或是sed有辦法達到這功能嗎

grep -B1 -A2 "*AAA*" data.txt > result.txt

參考看看 grepab.sh
----------------------沿虛線剪下-----------------------------
greplinenumbers=`grep -E "*AAA*" -n data.txt | cut -d : -f 1`
rm displaylines.txt > null 2>&1
for getline in $greplinenumbers
do
expr $getline - 1 >> displaylines.txt
expr $getline >> displaylines.txt
expr $getline + 1 >> displaylines.txt
expr $getline + 2 >> displaylines.txt
done

displaylinenumbers=`cat displaylines.txt`
rm result.txt > null 2>&1
for getline in $displaylinenumbers
do
sed -n "$getline p" data.txt >> result.txt
done
----------------------沿虛線剪下-----------------------------


[mary@localhost ~]$ cat data.txt
111
AAAAA
333
444
555
111
AAAAA
333
444
555
[mary@localhost ~]$ sh grepab.sh
[mary@localhost ~]$ cat result.txt
111
AAAAA
333
444
111
AAAAA
333
444
[mary@localhost ~]$

※ 編輯: xyz2012 來自: 122.121.215.49 (11/26 23:13)

Tags: Linux

All Comments

sarg 佔空間 怎麼辦?

Kelly avatar
By Kelly
at 2011-11-26T20:38
我架了sarg用來監控squid的流量 只跑了兩個多月 竟然已經2g左右 這個sarg怎麼吃那麼多空間呀? 那用個兩年 不就吃個30g了...... 請問有解決之道嗎?? - ...

SMPlayer 播放時卡住

Catherine avatar
By Catherine
at 2011-11-26T15:04
最近開始用 ubuntu 網路上有很多資訊可以看,真不錯 不過看影片的時候碰到大問題了 用 SMPLAYER 看影片時,用1倍或是2倍大小觀看都沒有問題 可以順利播放,但是「有時候」切換到全銀幕的時候畫面就卡住,但是聲音一樣繼續 想請問這種有時候會發生的情況是為什麼呢? 錯誤碼如下: X11 er ...

Grep如何抓取前一行後兩行

Leila avatar
By Leila
at 2011-11-26T13:39
我覺得版本的問題吧? 我測試了一下,以下是測試檔: /***************************/ grep_test.txt: AAA BBB CCC DDD EEE FFF GGG /*************************/ 測試結果: bigdickatbigdick:~$ gr ...

centos 5.5 在二代I5電腦 裝不起來

Oscar avatar
By Oscar
at 2011-11-26T01:39
工作站最近買了一台華碩的電腦 CPU:I5-2400 要改成CENTOS系統 但是從5.3版裝到5.5 都不能安裝 本來是圖形介面的安裝路徑 變成說沒有驅動 出現一堆選項 怎麼試都不行 請教一下 板上的大大 這是什麼原因呢? - ...

哪些二手書店有linux相關書籍(台北)

Edwina avatar
By Edwina
at 2011-11-25T15:10
如題 最近想要買些書Linux programing ...etc 來充實自己一下 想請問有人知道台北哪裡有二手書店 有linux相關的藏書嗎? 因為自己跑了兩三間 似乎都沒有 頂多賣office 哪些書籍。 所以才上來問問 麻煩知道的前輩可以提供一下店名 謝謝 - ...