2013-07-30 60 views
0

我有以下內容的文件:匹配圖案2

# 23 hits found 
A_246 sme-miR-752-3p 100.00 12 0 0 1 12 6 17 0.14 23.3 
-- 
# 16 hits found 
A_699 bmo-miR-3326 100.00 10 0 0 4 13 6 15 1.9  19.6 

如果第一線具有# 23 hits found我需要打印第二行的第一列中只用製表。

例如在這個文件中,我會得到:

# 23 hits found A_246 

我嘗試下面的命令,但是我也不太明白如何讓印刷第二行第一列:

awk '/# 23 hits found/' microns_seq1 

回答

0

創建文件(awk0)與awk代碼。

 
/# 23 hits found/ { got_cnt = $0 
        next} 
got_cnt != ""  { print got_cnt $1 
        got_cnt = ""}` 

然後運行: awk -f awk0 microns_seq1

祝你好運!

+0

的'BEGIN'塊是多餘這裏。 –

+0

@sudo_O是的。你是對的。我編輯了答案來反映這一點。謝謝。 – Anil

0

這AWK應該工作:

awk '/^# [0-9]+ hits found$/{l=$0; getline; print l "\t" $1}' file 
0

做一些插值,而不是把你的問題,從字面上看,我想你會想:

$ awk 'f{print $1;f=0}/# [0-9]+ hits found/{printf "%s\t",$0;f=1}' file 
# 23 hits found  A_246 
# 16 hits found  A_699