我有一个包含如下所示行的文件:
GTTCAGAGTTCTACAGTCCGACGATCGGATGAGNNNNNN
GTTCAGAGTTCTACAGTCCGACGATCTCCGAGTNNNNNN
GTTCAGAGTTCTACAGTCCGACGATCCTTATATNNNNNN
GTTCAGAGTTCTACAGTCCGACGATCGAAGTGCNNNNNN
GTTCAGAGTTCTACAGTCCGACGATCAAGTTTTNNNNNN
GTTCAGAGTTCTACAGTCCGACGATCCGACGAANNNNNN
我想从每行中删除前26个和最后6个字符。我无法用vi编写一个好的正则表达式,但我不知道还能做什么。 有什么建议吗?
谢谢!
答案 0 :(得分:3)
尝试使用grep。
这将保留最后13个字符,然后保留前7个字符,仅返回匹配字符(-o)和符合Perl的-P标志:
grep -oP ".{13}$" foo.txt | grep -oP ".{7}"
答案 1 :(得分:2)
如果你的文件名是foo
,你可以使用剪切来获取你想要的字符范围:
$ cut -c27-33 foo
这会产生:
GGATGAG
TCCGAGT
CTTATAT
GAAGTGC
AAGTTTT
CGACGAA
答案 2 :(得分:1)
cut
可以使用字符范围,如果这些行是固定大小(它们看起来都是39个字符)
cut -c27-33 file.txt