如何删除行中的其他行的子行,同时保留包含它们的较长字符串?删除其他行的子字符串的行
我有一个包含肽序列作为字符串的文件 - 每行一个序列字符串。我想保留包含所有序列的字符串,并删除文件中其他行的子字符串的所有行。
输入:
GSAAQQYW
ATFYGGSDASGT
GSAAQQYWTPANATFYGGSDASGT
GSAAQQYWTPANATF
ATFYGGSDASGT
NYARTTCRRTG
IVPVNYARTTCRRTGGIRFTITGHDYFDN
RFTITGHDYFDN
IVPVNYARTTCRRTG
ARTTCRRTGGIRFTITG
期望输出:
GSAAQQYWTPANATFYGGSDASGT
IVPVNYARTTCRRTGGIRFTITGHDYFDN
输出应该只保留最长的字符串,删除这是最长的字符串的子行。因此,在上面的输入中,行1,2,4和5是行3的子字符串,因此输出保留行3.类似地,行6,8,9和10上的行都是行7的子行,因此行7被保留并写入输出。
什么是“长“? “两个最长”? –
啊,你想删除任何字符串是另一个字符串的子字符串吗?你到目前为止尝试过什么? –
https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html#index-index_0028_0029-function – user3159253