TL;DR

  • 우선 -i 옵션은 결과물을 stdout 으로 내보내는게 아니고 바로 해당 파일에 적용하는 옵션이고, 만약에 적용 전의 파일을 백업하고자 할 때 생성할 백업 파일의 확장자를 이 옵션의 인자로 줄 수 있다.
  • 이때, Linux 의 sed 에서는 -i 옵션에 대해 아무런 인자를 주지 않아도 된다. 그럼 자동으로 백업 파일을 생성하지 않는다.
  • 하지만 MacOS 의 sed 에서는 인자를 무조건 줘야 한다. 따라서 이때는 빈 문자열을 주어서 백업 파일을 생성하지 않게 할 수 있다.
    • 만약에 인자를 주지 않으면 Invalid command code ... 라는 에러가 난다.
sed -i '' 's/old/new/g' $FILE