나는 find를 사용하여 디렉토리에서 여러 파일을 가져온 다음 awk에서 문자열을 찾아서 바꾸기 위해 find를 사용한다. 그러나 awk는 파일을 덮어 쓰지 않고 stdout에 파일의 전체 내용을 인쇄합니다. 나는 내 목표를 달성하기 위해 여기서 사용해야하는 구문에 관해서는 다소 혼란 스럽다.awk를 사용하여 찾은 파일에서 문자열을 찾아서 찾는다.
내 명령은 지금까지입니다 :이 SKU+ProductId
와 문자열 SKU
를 교체하지만 파일을 덮어 쓰기되지
find -iname '*_input.xml' -exec awk -P '/"prop_name" : "ID",/ , /}/ {print sub(/SKU/,"SKU+ProductId")} 1' {} +
.
어떤 사람이 실종되었는지에 대한 아이디어가 있습니까?
건배!
업데이트 : 예 내용 : 당신은 표준 출력을 리디렉션해야합니다 있도록
},
"prop_name" : "ID",
"rule" : "SKU"
},
find 명령의'-exec'에 어떻게 맞추는 지 정확히 알 수는 없지만 이것이 작동하지 않는 이유를 설명합니다 : http://stackoverflow.com/questions/9705940 –