큰 XML 파일의 값에 10을 추가합니다.

큰 XML 파일의 값에 10을 추가합니다.

변경하려는 대형 xml 파일에 수백 개의 svg 차트가 있습니다.

<svg:g transform="matrix(1 0 0 1 59.06 88.74)">

88.74에서 98.74는 다음으로 시작하는 각 줄에 10을 더합니다.

<svg:g transform="matrix(

많은 수작업 없이 어떻게 이 작업을 수행할 수 있습니까? 나는 대체품이 있다는 것을 알고 있었지만 추가된 사항이 내 관심을 끌지 못했습니다.

답변1

내 대답은 다음과 awk같습니다

awk -F'[ ")>]' '/\<svg\:g transform\=\"matrix\(/ {sub($(NF-3), 10+$(NF-3))}1' infile > outfile

awk옵션이 있는 명령은 공백, 및 -F필드 구분 "기호 를 정의합니다. 그런 다음 패턴이 포함된 줄을 검색합니다 . 다음 픽업 필드를 추가한 10개 값으로 바꿉니다.)><svg:g transform="matrix($(NF-3)

$(NF)-> 마지막으로 >- $(NF-1)>가 마지막이고 ", $(NF-2)->가 마지막이고 ), 마지막으로 $(NF-3)->가 +10 값을 더하고 싶은 예상 값입니다.

<svg:g transform="matrix(1 0 0 1 59.06  88.74    )        "      >
                                       $(NF-3) $(NF-2) $(NF-1) $(NF)

입력하다:

<svg:g transform="matrix(1 0 0 1 59.06 4.74)">
<svg:g transform="matrix(1 0 0 1 59.06 88.74)">
<svg:g transform="matrix(1 0 0 1 59.06 5.74)">

산출:

<svg:g transform="matrix(1 0 0 1 59.06 14.74)">
<svg:g transform="matrix(1 0 0 1 59.06 98.74)">
<svg:g transform="matrix(1 0 0 1 59.06 15.74)">

관련 정보