【发布时间】:2021-11-16 00:51:40
【问题描述】:
不知何故,我无法解决这个问题。我有以下字符串:
>sp.A9L976 PSBA_LEMMI Photosystem II protein D1 organism=Lemna minor taxid=4472 gene=psbA
我想使用 sed 删除第 1 次和第 2 次出现空格之间的字符串。因此,在这种情况下,应该删除 PSBA_LEMMI。前两个空格之间的字符串不包含任何特殊字符。
到目前为止,我尝试了以下方法:
sed 's/\s.*\s/\s/'
但这会删除最后出现的空格字符串,导致:>sp.A9L976 TESTgene=psbA。我认为通过省略贪婪表达式g sed 只会匹配字符串的第一次出现。我也试过了:
sed 's/(?<=\s).*(?=\s)//'
但这不匹配/删除任何东西。有人可以帮我吗?我错过了什么?
【问题讨论】:
-
使用 awk 这只是
awk '{$2 = ""} 1' file -
那很优雅!非常感谢!
标签: regex bash sed bioinformatics fasta