私はSedについて何も知りませんが、Mac OSXで動作するにはこのコマンド(Ubuntuでは正常に動作します)が必要です:
sed -i "/ $domain .*#drupalpro/d" /etc/hosts
私は得ています:
sed: 1: "/etc/hosts": extra characters at the end of h command
UbuntuにはGNU sed
が付属しています。-i
オプションのサフィックスはオプションです。 OS XにはBSD sed
が同梱されていますが、サフィックスは必須です。 sed -i ''
を試してください
男はあなたの友達です。
-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 situ-
ations where disk space is exhausted, etc.
OS Xでは、GNUバージョンのsed:gsed
を使用できます。
# if using brew
brew install gnu-sed
#if using ports
Sudo port install gsed
次に、スクリプトを移植可能にする必要がある場合、OSに応じて、使用するコマンドを定義できます。
SED=sed
unamestr=`uname`
if [[ "$unamestr" == "Darwin" ]] ; then
SED=gsed
type $SED >/dev/null 2>&1 || {
echo >&2 "$SED it's not installed. Try: brew install gnu-sed" ;
exit 1;
}
fi
# here your sed command, e.g.:
$SED -i "/ $domain .*#drupalpro/d" /etc/hosts