我有一个包含以下内容的文件:
# 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 :(得分:0)
使用awk代码创建一个文件(awk0)。
/# 23 hits found/ { got_cnt = $0 next} got_cnt != "" { print got_cnt $1 got_cnt = ""}`
然后运行:
awk -f awk0 microns_seq1
答案 1 :(得分:0)
这个awk应该可以工作:
awk '/^# [0-9]+ hits found$/{l=$0; getline; print l "\t" $1}' file
答案 2 :(得分: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