Bash: cutting a delimited fragment of each string
我有一个文件包含如下所示的行:
1 2 3 4 5 6 | GTTCAGAGTTCTACAGTCCGACGATCGGATGAGNNNNNN GTTCAGAGTTCTACAGTCCGACGATCTCCGAGTNNNNNN GTTCAGAGTTCTACAGTCCGACGATCCTTATATNNNNNN GTTCAGAGTTCTACAGTCCGACGATCGAAGTGCNNNNNN GTTCAGAGTTCTACAGTCCGACGATCAAGTTTTNNNNNN GTTCAGAGTTCTACAGTCCGACGATCCGACGAANNNNNN |
我想从每一行中删除前26个和最后6个字符。 我无法用vi编写一个好的正则表达式,但我不知道还能做什么。
有什么建议?
谢谢!
尝试用grep。
这将保留最后13个字符,然后保留前7个字符,仅返回匹配字符(-o)和符合Perl的-P标志:
1 | grep -oP".{13}$" foo.txt | grep -oP".{7}" |
如果您的文件名是
1 | $ cut -c27-33 foo |
这会产生:
1 2 3 4 5 6 | GGATGAG TCCGAGT CTTATAT GAAGTGC AAGTTTT CGACGAA |
1 | cut -c27-33 file.txt |