xargs sed가 내용을 바꾸는 대신 파일 이름을 바꾸고 있습니다.

xargs sed가 내용을 바꾸는 대신 파일 이름을 바꾸고 있습니다.

복잡한 명령:

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.sede

~에서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 ...

백업 파일이 생성되지 않기 때문입니다.

관련 정보