2012-10-25 2 views
0

우리는 많은 포스트가있는 오래된 PhPBB3 설치가 있습니다. 이미 새 게시물이 포함 된 새로운 설치를 만들었습니다. 내가하고 싶은 일은 MySQL을 이전 설치에서 XML로 내보내고 post_id와 topic_id를 새로 설치 한 다음 번호로 재설정하는 것입니다. 우리는 모든 것을 1 개의 새로운 카테고리 (수입, 111)에 넣을 것입니다.메모장 ++ regexp 증가 숫자

  <column name="post_id">3</column> 
     <column name="topic_id">3</column> 

새로운 열이 3000에서 실행되고, topic_id 간다 3337. 그래서 내가 필요로하는

<column name="post_id">3338</column> 

같은 얻을

<column name="post_id">3</column> 

요구가있는 모든 라인이라고 할 수 있습니다 ... 어떻게하면됩니까?

+1

post_id를 이전 MySQL (또는 이전 MySQL 복사본)에서 직접 업데이트하기 전에 내보내기가 쉽지 않습니까? –

+0

Regex는 숫자를 늘릴 수 없습니다. MySQL에서 업데이트하거나 XML을 구문 분석하고 거기에서 업데이트해야합니다. – pogo

+0

https://www.phpbb.com/community/viewtopic.php?f=65&topic=php?f=65&t=1917165를보세요. HTH –

답변

0

Ruby, Python 또는 Perl로 할 수 있습니다. 여기가 루비에 끝낼 방법은 다음과 같습니다

귀하의 file.xml
$ ruby -pi.bak -e '$_.gsub!(/(<column name="post_id">)(\d+)(<\/column>)/) { "#{$1}#{$2.to_i + 3000}#{$3}" }' file.xml 

이 자리에서 편집하고 백업 사본이 file.xml.bak에 저장됩니다.

+0

그리고 이것은 메모장 ++로 할 수 없었습니다? = ( 그럼 루비를 설치하고 그걸보세요 = ( – Tuumke

+2

@Tuumke, 필자는 메모장 ++을 한번도 사용하지 못했지만, 검색 기능을 대체하고 기능을 대체하지는 않는다는 것이 거의 확실합니다. 정규 표현식은 산술 연산을 지원하지 않으므로 편집기에서 편집하는 것이 중요한 이유는 무엇입니까? 작업에 가장 적합한 도구를 사용하십시오. – detunized