2011-08-02 3 views
4

자릿수가 포함 된 14 자 라인이 있습니다. 특정 위치 (예 : 4 번째 위치)에 어떻게 문자를 삽입합니까? 그래서, 만약 내가 이런 식으로 문자열 : xxxxxxxxxxxxxx 어떻게 이런 식으로 변경합니까 : xxxx-xx-xxxxxxxx? (x = 숫자)sed 문자열에 대시를 삽입하십시오.

고마워요! irek

답변

5

당신의 라인이 이 숫자를 포함하는 경우, 그룹화 할 수 있습니다 그룹의 처음 네 문자 :

\(....\)\(..\) 

: 다른 그룹의

\(....\) 

다음과 같은 두 사람 그런 다음 첫 번째 그룹 (\1), 대시, 두 번째 그룹에 대한 역 참조 (\2) 및 다른 대시 (

)에 대한 역 참조로 바꿉니다.
\1-\2- 

는 그 결과 답변에 대한

$ echo 12345678900000 | sed 's/\(....\)\(..\)/\1-\2-/' 
1234-56-78900000 
1

감사 brandizzi은은을 대체하기 위해 약간 다른 방법

sed 's/^\(.\{4\}\)\(.\{2\}\)/\1-\2-/' 

4 2 일을 사용하여 일을 내 일을 얻기 위해 나에게 도움이 4 번째 문자 다음에 2 번째 문자를 대시로 사용하십시오.

그래서 xxxxxxxx는 xxxx-xx-xx가됩니다