bash에서 PATH 요소를 여러 xml 파일의 SED로 바꿉니다.

앨런 추

1 개의 xml 파일을 교체했습니다. 그러나 나는 그들 중 10 개에서 test1.xmlto 까지 test30.xml있고 끝에 다른 경로가 있습니다.

  • test1.xml
    ...
    <examples>
    <example path='/test/test123/st1.txt'/>
    <examples>
    ...
    
  • test2.xml
    ...
    <examples>
    <example path='/test/test123/te2.txt'/>
    <examples>
    ...
    

등등.

  • test30.xml
    ...
    <examples>
    <example path='/test/test123/removethispart.txt'/>
    <examples>
    ...
    

출력 은 다음과 같아야합니다.

```
...
<examples>
<example path='/test/test123/'/>
<examples>
...
```

이전에는 이것을 사용했고 하나의 파일을 변경할 수 있습니다

sed -i "s#<example path='/test/test123/st1.txt'/>#<example path=/test/test123/>#" test1.xml

그러나 한 번에 여러 파일을 변경하고 아래 스크립트가 실행되었지만 catxml 파일에서 변경 사항이 표시되지 않았습니다.

sed -i "s#<example path='/test/test123/*.txt'/>#<example path='/test/test123/'>#" *.xml

어떤 도움이라도 대단히 감사하겠습니다. 시간 내 줘서 고마워!

AdminBee

문제의 원인은 정규식 패턴이 필요한 "shell glob"(일명 "와일드 카드") 패턴을 사용하기 때문입니다.

부분은 /test/test123/*.txt실제로 " /test/test123, 0 개 이상의 /문자, 단일 문자, txt" "를 의미합니다.

이 패턴은 원하는 것이 아니며 파일 어디에도 없습니다.

대신, 당신이 필요하다 /test/test123/[^.]*\.txt"의미 /test/test123/있는 문자의 수에 따라, 하지. "다음에 (이 필요한 이유에 대한 욕심이 정규 표현식 참조) " 리터럴. 뒤에 txt".

완전한 명령은 다음과 같습니다.

sed -i "s#<example path='/test/test123/[^.]*\.txt'/>#<example path='/test/test123/'>#" *.xml

노트

파일 이름 ..txt확장자 외에 포함될 수있는 경우 위의 내용이 제대로 작동하지 않습니다. 이 경우 사용

sed -i "s#<example path='/test/test123/.*\.txt'/>#<example path='/test/test123/'>#" *.xml

의미 " /test/test123/, 0 개 이상의 모든 종류의 문자 ., 리터럴 , txt". .txt패턴이 나중에 라인에서 다시 발생 하지 않는 한 올바르게 작동합니다 (입력에 해당되지 않아야 함).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

bash에서 xml 파일의 SED로 PATH 요소를 검색하고 바꾸는 방법

분류에서Dev

bash는 파일의 여러 줄 텍스트를 패턴으로 바꿉니다.

분류에서Dev

groovy에서 sed를 사용하여 json 파일의 값을 바꿉니다.

분류에서Dev

배치를 사용하여 txt 파일에서 여러 공백을 하나의 공백으로 바꿉니다.

분류에서Dev

파일에서 줄을 분할하여 tcl의 요소를 바꿉니다.

분류에서Dev

여러 줄에 걸쳐 텍스트를 찾아 파이썬 (xml)으로 바꿉니다.

분류에서Dev

Bash는 파일의 줄을 여러 줄 파일로 바꿉니다.

분류에서Dev

dplyr에서 '요약'의 반대 : 한 행을 여러 행으로 바꿉니다.

분류에서Dev

bash에서 sed를 사용하여 문자열을 heredoc로 바꿉니다.

분류에서Dev

sed를 사용하여 전체 파일에서 "& # x2"를 "0x02"로 바꿉니다.

분류에서Dev

sed를 사용하여 전체 파일에서 "& # x2"를 "0x02"로 바꿉니다.

분류에서Dev

스크립트에서 sed를 사용하여 줄을 파일 내용으로 바꿉니다.

분류에서Dev

NA를 여러 열의 루프에서 그룹 값으로 바꿉니다.

분류에서Dev

BASH를 사용하여 특정 줄 번호 사이의 파일 내용을 다른 파일로 바꿉니다.

분류에서Dev

sed 및 perl에서 여러 줄 텍스트를 여러 줄 텍스트로 바꿉니다.

분류에서Dev

Pandas에서 여러 열의 여러 문자열과 숫자를 NaN으로 바꿉니다.

분류에서Dev

unix를 사용하여 파일에서 null을 ""test ""로 바꿉니다.

분류에서Dev

텍스트 파일의 경로를 sed로 바꿉니다.

분류에서Dev

Python을 사용하여 CSV 파일의 특정 열에서 '/'를 '_'로 바꿉니다.

분류에서Dev

이중```쌍의 여는```를```bash로 바꿉니다.

분류에서Dev

필드 A에서 B로 날짜의 일부를 복사하여 바꿉니다.

분류에서Dev

sed를 사용하여 줄의 일부를 변수로 바꿉니다.

분류에서Dev

bash 스크립트를 사용하여 상수로 후행 번호를 늘려 여러 파일의 이름을 바꿉니다.

분류에서Dev

스타일러를 사용하여 R 코드에서 T를 TRUE로, F를 FALSE로 바꿉니다.

분류에서Dev

sed를 사용하여 축소 된 js 파일에서 알려진 두 문자열 사이의 알 수없는 문자열을 바꿉니다.

분류에서Dev

역 참조에 대한 일치를 sed의 문자열로 바꿉니다.

분류에서Dev

xml 자식 요소 텍스트를 목록 파이썬의 값으로 바꿉니다.

분류에서Dev

여러 파일에서 변수 이름의 각 문자 인스턴스를 바꿉니다.

분류에서Dev

특정 위치에있는 파일의 단일 문자열을 여러 새 문자열로 바꿉니다.

Related 관련 기사

  1. 1

    bash에서 xml 파일의 SED로 PATH 요소를 검색하고 바꾸는 방법

  2. 2

    bash는 파일의 여러 줄 텍스트를 패턴으로 바꿉니다.

  3. 3

    groovy에서 sed를 사용하여 json 파일의 값을 바꿉니다.

  4. 4

    배치를 사용하여 txt 파일에서 여러 공백을 하나의 공백으로 바꿉니다.

  5. 5

    파일에서 줄을 분할하여 tcl의 요소를 바꿉니다.

  6. 6

    여러 줄에 걸쳐 텍스트를 찾아 파이썬 (xml)으로 바꿉니다.

  7. 7

    Bash는 파일의 줄을 여러 줄 파일로 바꿉니다.

  8. 8

    dplyr에서 '요약'의 반대 : 한 행을 여러 행으로 바꿉니다.

  9. 9

    bash에서 sed를 사용하여 문자열을 heredoc로 바꿉니다.

  10. 10

    sed를 사용하여 전체 파일에서 "& # x2"를 "0x02"로 바꿉니다.

  11. 11

    sed를 사용하여 전체 파일에서 "& # x2"를 "0x02"로 바꿉니다.

  12. 12

    스크립트에서 sed를 사용하여 줄을 파일 내용으로 바꿉니다.

  13. 13

    NA를 여러 열의 루프에서 그룹 값으로 바꿉니다.

  14. 14

    BASH를 사용하여 특정 줄 번호 사이의 파일 내용을 다른 파일로 바꿉니다.

  15. 15

    sed 및 perl에서 여러 줄 텍스트를 여러 줄 텍스트로 바꿉니다.

  16. 16

    Pandas에서 여러 열의 여러 문자열과 숫자를 NaN으로 바꿉니다.

  17. 17

    unix를 사용하여 파일에서 null을 ""test ""로 바꿉니다.

  18. 18

    텍스트 파일의 경로를 sed로 바꿉니다.

  19. 19

    Python을 사용하여 CSV 파일의 특정 열에서 '/'를 '_'로 바꿉니다.

  20. 20

    이중```쌍의 여는```를```bash로 바꿉니다.

  21. 21

    필드 A에서 B로 날짜의 일부를 복사하여 바꿉니다.

  22. 22

    sed를 사용하여 줄의 일부를 변수로 바꿉니다.

  23. 23

    bash 스크립트를 사용하여 상수로 후행 번호를 늘려 여러 파일의 이름을 바꿉니다.

  24. 24

    스타일러를 사용하여 R 코드에서 T를 TRUE로, F를 FALSE로 바꿉니다.

  25. 25

    sed를 사용하여 축소 된 js 파일에서 알려진 두 문자열 사이의 알 수없는 문자열을 바꿉니다.

  26. 26

    역 참조에 대한 일치를 sed의 문자열로 바꿉니다.

  27. 27

    xml 자식 요소 텍스트를 목록 파이썬의 값으로 바꿉니다.

  28. 28

    여러 파일에서 변수 이름의 각 문자 인스턴스를 바꿉니다.

  29. 29

    특정 위치에있는 파일의 단일 문자열을 여러 새 문자열로 바꿉니다.

뜨겁다태그

보관