FreeBSD를 실행하는 공유 호스팅 인 서버용 셸 스크립트를 작성하고 있습니다. 또한 Linux를 실행하는 PC에서 로컬로 테스트하고 싶습니다. 따라서 이식 가능한 방식으로 작성하려고하지만 sed
그렇게 할 방법이 없습니다.
내 웹 사이트의 일부는 생성 된 정적 HTML 파일을 사용하며이 sed 행은 각 재생성 후에 올바른 DOCTYPE을 삽입합니다.
sed -i '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
sed
Linux에서는 GNU와 함께 작동 하지만 FreeBSD sed
는 -i
옵션 이후의 첫 번째 인수 가 백업 사본의 확장이 될 것으로 예상합니다 . 이것이 다음과 같이 보일 것입니다 :
sed -i '' '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
그러나 GNU sed
는 그식이 바로 뒤에 이어질 것으로 예상합니다 -i
. (또한 개행 처리로 수정해야하지만 이미 여기에 답변되어 있습니다 )
물론 서버의 스크립트 사본에이 변경 사항을 포함시킬 수 있지만 버전 관리를 위해 VCS를 사용하는 것은 혼란 스러울 것입니다. sed로 완전히 이식 가능한 방법으로 이것을 달성 할 수있는 방법이 있습니까?
-i