다음과 같은 문제가 있습니다 - 특정 디렉토리 아래 모든 XML 파일을 트래버스하고 특정 접두사로 찾으려는 모든 id
-s 접두어를 붙이고 싶습니다. > {}
작동하지 않습니다 - find 및 awk를 사용하여 파일 내용을 어떻게 바꿀 수 있습니까?
#!/bin/bash
find . -iregex .+?\.xml -print -exec awk '{print gensub(/(.*?)=\"(@(\+|)id)\/(.+)\"/, "\\1=\"\\2/prefix_\\4\"", "g", $1);}' {} > {} \;
가 리디렉션 부분은 그러나 : 나는 그렇게 다음 스크립트를 작성했습니다. 스크립트는 정상적으로 실행되고 stdout에서 예상대로 모든 것을 출력하지만 awk에서 읽은 것과 동일한 파일로 출력을 리디렉션 할 수없는 것으로 보입니다. 이 아이디어를 어떻게 피할 수 있을까요? 감사! 대신 비난하는
그냥 분명히하기 위해, * 동시에 파일에 쓰는 동안 파일에서 읽고 싶습니까? – Levon
아니요. awk print ... {}'가 awk가 읽은 파일로 리디렉션 될 내용을 출력 할 것으로 예상합니다. 그것은 불가능한 것 같다. – asenovm