【发布时间】:2020-01-27 20:21:08
【问题描述】:
我只想删除第二个管道符号(包括管道符号)前面的所有内容,直到大于号(保留它)。可惜我是初学者,网上没有发现类似的问题。
例如
>ENA|FXSY01000001|FXSY01000001.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
>ENA|FXSY01000001|FXSY01000002.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
>ENA|FXSY01000001|FXSY01000003.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
从@VJC 重新编辑 输出新要求:
>FXSY01000001.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
>FXSY01000002.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
>FXSY01000003.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
根据 shellter 的建议,它给了我以下输出:awk -F\| '/^>/{print ">" $NF}1' file > newFile
>FXSY01000001.1
>ENA|FXSY01000001|FXSY01000001.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
>FXSY01000002.1
>ENA|FXSY01000001|FXSY01000002.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
>FXSY01000003.1
>ENA|FXSY01000001|FXSY01000003.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
但已修复:sed '/^#/ d' < inputFile.txt > outputFile.txt
>FXSY01000001.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
>FXSY01000002.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
>FXSY01000003.1
AAAATCTTATTTTATTTTTTCCCTGTCGGCAGCAATTCATTCACCCCCTCACTTTTTAAT
ATTTTTAACTGCAAGATGAATAAAAATAAATTTTTCTCTCCACTCCATCATCCTGCTATA
TACATTTTTACTTTTTTTAATATTTTCCTTCCAATCATCACTACTTTATTTTTATTTCC
【问题讨论】:
-
欢迎来到 SO,感谢您诚实地讲述您尝试解决自己的问题的方法,在 SO 上,我们互相指导以寻求正确/最佳的解决方案,我们甚至会毫不犹豫地发布我们的方法(不'即使我们尝试了错误的方法也没关系)在我们的帖子中;重要的是我们应该提及我们的努力,继续努力并在这个伟大的网站上愉快地学习所以
-
awk -F\| '{print $NF}' file > newFile如果我正确理解您的要求。在 S.O. 上它总是很好的形式。将您的示例输入中所需的输出包含在问题正文中(而不是作为回复评论;-!)。祝你好运。 -
sed 's/.*|//' file? -
@shellter:它完成了这项工作。非常感谢!以下输出的必要命令是什么:
>FXSY01012088.1FURTHER INFO >FXSY01012089.1FURTHER INFO >FXSY01012090.1FURTHER INFO >FXSY01012091.1FURTHER INFO -
查看我的编辑。那是你需要的输出吗? (你现在明白为什么在 Q 的正文中包含你的确切要求的输出很重要吗?)。如果这是您需要的,那么您只需要
awk -F\| '{print ">"$NR}' file > newFile。通过Awk tutorial 和你的游戏相当大的工作;-)。祝你好运。