각 숫자와 문자 사이에 탭 문자 추가

각 숫자와 문자 사이에 탭 문자 추가

파일의 숫자와 문자를 구분하기 위해 탭 문자를 추가하고 싶습니다.

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

관련 정보