如何从 R 或 Linux 中删除一行中的最后一个字符(仅当它是数字时)

问题描述 投票:0回答:1

我有一份基因转录本列表,例如:

4R79.1b 4R79.2b AC3.1a AC3.2 AC3.3 AC3.5a

仅当最后一个字符是字母时,我才需要通过删除它来获取基因名称。我已经搜索了好几天了,但没有找到可以远程帮助的解决方案,我一定错过了一些东西。

我认为一定有一个简单的解决方案,但我最好的尝试是 sed 's/[[:alpha:]]$//'transcripts.txt >genes.txt 但它似乎没有做任何事情和文件的大小与原版没有任何改变。

请帮忙??

非常感谢。

awk sed bioinformatics
1个回答
0
投票

使用 awk:

$ echo '4R79.1b 4R79.2b AC3.1a AC3.2 AC3.3 AC3.5a' | 
awk '{for(i=1;i<=NF;i++) sub(/[[:alpha:]]$/,"",$i)} 1'   

打印:

4R79.1 4R79.2 AC3.1 AC3.2 AC3.3 AC3.5 
© www.soinside.com 2019 - 2024. All rights reserved.