各数字と文字の間にタブ文字を追加する

各数字と文字の間にタブ文字を追加する

ファイルの数字と文字を区別するためにタブ文字を追加したいと思います。

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

関連情報