![xargs sed가 내용을 바꾸는 대신 파일 이름을 바꾸고 있습니다.](https://linux55.com/image/183063/xargs%20sed%EA%B0%80%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EB%8C%80%EC%8B%A0%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%B0%94%EA%BE%B8%EA%B3%A0%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
복잡한 명령:
git ls-files | grep -E '\.(ts|xml|json|html|js|scss)$' | xargs sed -ie s/##tag##/1.0.0/g
과거에는 올바른 방식으로 작동하고 교체되었습니다.
그래서 파일버전 정보.html:
<p>Version: ##tag##</p>
이제 두 번째 파일이 생성됩니다.
- 버전 정보.html
- 버전 정보.htmle
왜 e
마지막에 추가되었나요?
삭제하면 -ie
내용이 나옵니다. e
에서 삭제하면 -ie
오류가 나타납니다.
귀하의 의견에 미리 감사드립니다!
답변1
프로비저닝이란 filename+ 이라는 백업 파일을 유지하면서 변경 작업을 수행하는 것을 의미합니다 -ie
.sed
e
~에서man sed
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
다른 매개변수를 동시에 사용하려면 sed -i
별도로 사용해야 합니다. 아니면 최소한 -i
백업 파일의 접미사로 해석되지 않도록 매개변수 뒤에 매개변수를 넣지 마세요.
sed -i.bak -e ...
.bak
확장자를 접미사로 사용하여 백업 파일을 생성하려면
sed -i -e ...
백업 파일이 생성되지 않기 때문입니다.