2011-01-28 37 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 
相关问题