我想添加一个制表符来分隔文件的数字和字母:
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