我读过很多关于在每个数字和字母之间添加制表符,或在字符串中其他位置添加/删除制表符和空格的非常有用的帖子,但我正在努力使这些解决方案适应我当前的问题,所以我想了想值得添加到堆栈中!我有一堆遗传数据,如下所示:
chr1 1324000 1325000tgagggtctgctg...
chr1 1318000 1319000gggactgcagctg...
ETC。
有没有办法在最后一个数字和第一个字母之间添加制表符?序列的长度不同,因此选项卡并不总是位于相同的位置。此外,第一组数字并不总是以 0 结尾。但是,制表符始终紧接在最后一个数字之后。我认为它会是这样的:
sed -e 's/\([[0-9]\+]\)/[\t/'
但这当然行不通。我如何告诉 sed 在这个位置放置一个制表符?
期望的输出:
chr1 1324000 1325000 tgagggtctgctg...
chr1 1318000 1319000 gggactgcagctg...
答案1
sed -E 's/([0-9])([acgtACGT])/\1\t\2/' file
作品!谢谢赛勒斯。
答案2
$ sed 's/[^0-9]*$/\t&/' file
chr1 1324000 1325000 tgagggtctgctg...
chr1 1318000 1319000 gggactgcagctg...