![큰 XML 파일의 값에 10을 추가합니다.](https://linux55.com/image/34160/%ED%81%B0%20XML%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EA%B0%92%EC%97%90%2010%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4..png)
변경하려는 대형 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)">