$2
예: 입력 파일을 분할하고 tab
포스트 패턴을 넣고 싶습니다surname
입력하다:
name surname1
name surname30000
name surname456
원하는 출력:
name surname 1
name surname 30000
name surname 456
답변1
하나앗선택하다:
awk 'match($2,/[0-9]+$/) {printf("%s\t%s\t%s\n", $1, substr($2,0,RSTART), substr($2,RSTART,RLENGTH))}' filename
이는 두 번째 열 끝에 있는 숫자 문자열과만 일치합니다.
답변2
다음을 사용하여 첫 번째 숫자를 찾아 탭과 숫자로 바꿀 수 있습니다.
sed 's/[0-9]/\t&/' file
답변3
sed -e 's/\([0-9]\)/\t\1/' input.txt
각 줄의 첫 번째 숫자 앞에 탭 문자를 추가합니다.
산출:
name surname 1
name surname 30000
name surname 456
답변4
데이터는 특정 위치에 있을 수 있습니다.기둥, 예를 들어 16:
sed -e 's/^\(.\{15,15\}\)/\1 /'
또는 세 번째 필드의 관심 데이터가 숫자가 아닐 수도 있습니다.
sed -e 's/^\([[:alpha:]]\+[[:space:]]\+\)\([[:alpha:]]\+\)/\1\2 /'
둘 중 하나는 데이터의 숫자(또는 기타 알파벳이 아닌) 문자 앞에 공백을 배치합니다.
참고로: