在每个数字和字母之间添加制表符

在每个数字和字母之间添加制表符

我想添加一个制表符来分隔文件的数字和字母:

71aging
1420anatomical_structure_development
206anatomical_structure_formation_involved_in_morphogenesis
19ATPase_activity
46autophagy
2634biological_process

所以现在它看起来像这样:

71  aging
1420  anatomical_structure_development
206  anatomical_structure_formation_involved_in_morphogenesis
19  ATPase_activity
46  autophagy
2634  biological_process

有没有单线的sed为了这?

答案1

下面一张是满足您要求的 sed 衬垫

 sed "s/^[0-9]*/&\t/g" filename

输出

71      aging
1420    anatomical_structure_development
206     anatomical_structure_formation_involved_in_morphogenesis
19      ATPase_activity
46      autophagy
2634    biological_process

答案2

sed -re 's/([0-9]+)([^0-9].*)/\1\t\2/g'

查找数字,然后查找非数字和其他内容。并在数字后面添加一个空格。

答案3

用这个sed

sed 's/^[0-9][0-9]*/&\t/' infile

答案4

用你所拥有的作为输入,并且POSIX BRE:

sed 's/^\([[:digit:]]*\)\(.*\)$/\1\t\2/g' input.txt

perl与分组一起使用也足够了:

$ perl -pe 's/(\d+)(.*)/\1\t\2/g' input.txt

相关内容