2013-07-29 3 views
2
perl -pi.back -e 's/2013/07/31-05:54:14/2014/07/31-00:00:00/g;' /tmp/ranjan/replace.SEL 

나는 위의 한 라이너를 사용하여 2013/07/31-05:54:14에서 2014/07/31-00:00:00 사이의 날짜를 바꿉니다. 그러나 나는 그것을 할 수 없다. 나는 위의 형식으로되어있는 숫자가 아닌 문자열을 대체 할 수만 있습니다. 제발 도와주세요.Perl에서 날짜를 대체하는 방법은 무엇입니까?

답변

11

사용 alternative delimiter :

s{find}{replace}g; 

또는

s#find#replace#g; 

그렇지 않으면 당신은 / 모두를 탈출해야 할 것이다.

+1

전체 편집 권한을 즐길 수 있습니다 –

4

펄은 날짜가 실제로 대체 문 s///g의 일부에 슬래시 생각, 그래서 당신은 날짜에 슬래시를 탈출하거나 대체에 대해 다른 구분 기호를 사용할 수 있습니다

perl -pi.back -e 's/2013\/07\/31-05:54:14/2014\/07\/31-00:00:00/g;' 

또는 더 읽기 :

perl -pi.back -e 's#2013/07/31-05:54:14#2014/07/31-00:00:00#g;' 
3

당신은 당신의 줄무늬를 바꾸거나 당신의 정규식 줄을 올바르게 벗어났습니다.

dilmeter는 인쇄 할 수없는 모든 것이 될 수 있습니다. 이 같은

:

s!2013/07/31-05:54:14!2014/07/31-00:00:00!g; 
관련 문제