grep模式直到特定字符(:)

考虑以下几点file.txt

@A00940:70:HTCYYDRXX:2:2101:1561:1063 1:N:0:ATCACG
TAGCACTGGGCTGTGAGACTGTCGTGTGTGCTTTGGATCAAGCAAGATCGG
+
FFFFFFFFFFFFFFFFFFFFFFFFFF:FFF::FFFFFFF:FFFFFFFFFFF
@A00940:70:HTCYYDRXX:2:2101:2175:1063 1:N:0:ATCACG
CGCCCCCTCCTCCGGTCGCCGCCGCGGTGTCCGCGCGTGGGTCCTGAGGGA
+
FFFF:FFFFF:FFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFF
@A00940:70:HTCYYDRXX:2:2101:2772:1063 1:N:0:ATCACG
TGGTGGCAGGCACCTGTAATCCCAGCTACTCGGGAGCCTGAGGCAGGAGAA

我正在尝试以最多但不包括冒号grep开头的行的所有字符,在本例中,结果将是.@:A00940

我试过这个:

cat file.txt | grep '[^:]*'

和这个:

cat file.txt | grep '^(.*?):'

但是这两个命令都不起作用,这是为什么呢?

回答

使用您显示的样本,您能否尝试以下操作。

awk 'match($0,/@[^:]*/){print substr($0,RSTART+1,RLENGTH-1)}' Input_file

随着sed解决方案:简单地停止所有行打印和打印仅在比赛由正则表达式发现这些行。

sed -n 's/^@([^:]*):.*/1/p' Input_file


以上是grep模式直到特定字符(:)的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>