2011-01-28 82 views
-1

如何在搜索一行後獲取文件的上一行? 敵人例如:有一個名爲fore.dat包含文件:如何在搜索一行後獲取文件的上一行?

:Server:APBS 

     :Max Blocking queue:20 

:Transport:000 

     :Server:APBS 

     :Max Transactions:10 

     :MaxConnections:1 

:Transport:001 

     :Server:APBS 

     :Max Transactions:10 

     :MaxConnections:1 

:Transport:005 
     :Server:BIT 

     :Max Transactions:10 

     :Max Connections:1 

:Transport:004 

     :Server:APBS 

     :Max Transactions:44440 

     :Max Connections:1 

:Transport:002 

     :Server:BET 

     :Max Transactions:10 

     :Max Connections:1 

:Transport:003 

     :Server:APBS 

     :Max Transactions:50 

     :Max Connections:1 

我要打印包含服務器名稱爲APBS運輸數量。 即;輸出爲:

:Transport:000 

:Transport:001 

:Transport:004 

:Transport:003 
+0

您是如何查找的?你在一個編輯器或使用grep? – 2011-01-28 12:41:40

回答

1

用哪個命令? grep

grep -B 1 text file.txt 

會給你匹配的行和之前的行。

+0

任何命令。在grep -B中無效。 – suvitha 2011-01-28 11:52:07

+0

請快速回復 – suvitha 2011-01-28 12:16:01

1

Eumiro的迴應,grep -B會給你一個號線的賽前:

% grep -B1 '^duplicate$' /usr/share/dict/words 
duplicand 
duplicate 

如果你想只是這場比賽,你可以做到以下幾點:

% grep -B1 '^question$' /usr/share/dict/words | head -n1 
questingly 

以下是另一種方法,因爲您的AIX安裝上似乎沒有可用的Gnu grep。這使用sedtail

% sed -n '1,/^another$/p' /usr/share/dict/words | tail -n2 | sed -n '1p' 
anoterite