2011-09-27 9 views
1

sed를 통해 스크립트에서 수정 된 날짜를 바꾸는 데 문제가 있습니다. sed를 사용하여 텍스트 바꾸기

olddate=`grep -m1 "Built " script.sh | cut -c 22-29` 

내가 가진 현재의 날짜 수 :

이 같은 마지막으로 수정 한 날짜 얻고있다

newdate=`date +%d/%m/%y` 

은 기본적으로 내가 새로운 날짜로 된 날짜를 대체 할을

sed -i "" "s/$olddate/$newdate/g" script.sh 

그러나 날짜에 슬래시가 포함되어 있어도 작동하지 않습니다. 나는 주변을 둘러 보았고 제대로 탈출 할 길을 찾지 못했습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

'그렙 작동합니다

sed "s#$olddate#$newdate#g" [...] | cut [...]'은 종종 awk를 사용하여 더 잘 표현됩니다 (그리고 파이프를 저장합니다) – Johnsyweb

+0

어떻게 그럴 수 있습니까? –

+0

* *이 경우,'awk '/ Built/{print substr ($ 0, 22, 8); exit} 'script.sh' – Johnsyweb

답변

6

당신은 예를 들어, 슬래시 이외의 구분을 사용할 수 있습니다 ","

sed -i "" "s;$olddate;$newdate;g" script.sh 
+0

완벽합니다. 빠른 응답을 주셔서 감사합니다! –

3

사용, 대신에 /의!

sed -i "" "s,$olddate,$newdate,g" script.sh 

실제로 거의 모든 문자를 구분 기호로 사용할 수 있습니다.

관련 문제