2013-02-20 5 views
3

문자열의 텍스트를 바꿀 수는 있지만 번호를 입력하자 마자 일치하지 않습니다.sed 문자열의 숫자를 바꾸기

[0-9]\+\이 문제의 원인입니다.

이 작동 : 나는 this question earlier 요청에 대해 사과

sed -i "" -e "s/mySite-[0-9]\+\.js/mySite$current_timestamp.js/" template.php 

하지만이 바보 같은 것은 거의 하루 종일 보냈어요 내가 미친거야 :

sed -i "" -e "s/mySite-.js/mySite$current_timestamp.js/" template.php 

이하지 않는 .

답변

4

샘플 데이터 및 예상 출력을 고려하십시오.

[0-9]\+으로 반복 번호를 삭제하려는 경우 \을 삭제하고 [0-9]+을 사용해보세요.

+를 지원하므로

sed -i "" -e "s/mySite-[0-9][0-9]*\.js/mySite$current_timestamp.js/" template.php 

IHTH

+0

@shelter를 사용하지 않습니다 나오지도, 그게 당신의 다음 작동하지 않는 경우! 내 버전의 sed가'+'를 지원하지 않는 것 같습니다. 고마워요! 인생은 계속 될 수 있습니다! –

+1

@timpeterson 또한 확장 정규 표현식 (적어도 sed의 일부 버전에서는, 예를 들어 GNU sed 4.2.1)을 가능하게하는'-r' 옵션을 사용하여'[0-9] +'를 sed와 매치해볼 수 있습니다. – speakr

+0

이전에'-r'을 시도해 보았습니다. MacOSX 10.7.6을 사용하고 있습니다. 어떻게 가장자리의 경우인지 모르겠습니다. –