Unix iMac 쉘 터미널
sed -i 's/original/new/g' maths.tx
반환 메시지: sed: -i는 stdin과 함께 사용할 수 없습니다.
답변1
Mac은 자체 기능이 있는 sed
및 와 같은 BSD 버전의 유틸리티를 사용합니다 .date
이 특정한 경우에 BSD 버전은 다음과 같습니다.sed
승인하다백업 파일 확장자는 입니다 -i
.임의로 선택할 수 있는, GNU 에서처럼 sed
.
이와 같이:
sed -i .bak 's/needle/pin/g' haystack
표시된 명령은 파일의 모든 인스턴스를 대체 needle
하고 원본 파일은 그대로 유지 pin
됩니다 .haystack
haystack.bak
sed
Mac의 구현 매뉴얼에서:
-i extension Edit files in-place, saving backups with the specified extension. If a zero-length extension is given, no backup will be saved. It is not recommended to give a zero-length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.
Linux 호스트와 반대로:
-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
"길이가 0인 확장"은 "확장 없음"과 동일하지 않습니다. 그러면 백업을 완전히 피할 수 있습니다.
sed -i '' 's/needle/pin/g' haystack
답변2
다음과 같이 백업 파일을 지정해야 합니다.
sed -i .bak 's/original/new/g' maths.tx