知らないとはまる方もいると思いますの書いています。

スポンサーリンク

MacはBSD系のsed、LinuxはGNUのsed

Macに入っているsedはBSD系で、LinuxはGNUのsedとなり、動作が異なるので注意が必要です。

Macのsedでは、iオプションの後ろに必ずバックアップ用拡張子をつける必要

Linuxの時と同じように、上書きを前提にMacでsedコマンドを実行すると下記のようにエラーとなります。
-iオプションの使い方が異なるので、最初ははまりました。

Macのsedのmanにも説明があるのですが、Macのsedの場合は、-iオプションの後に、必ずバックアップ用の拡張子をつける必要があります。
そこで、下記のように-iオプションの後に拡張子をつけると、実行できます。

lsコマンドで見ると、.bakの拡張子のついたバックアップファイルが生成されているのが確認できます。

スポンサーリンク

Macのsedで、上書きする場合は?

Macのsedのmanにも記載がありますが、-iオプションの後ろに空文字を指定することで、上書きすることができます。
下記のように、-iオプションの後ろに "" を指定します。

lsコマンドで見ると、バックアップファイルが生成されないことが確認できます。

homebrewでGNUのsedをインストール

ただ、世の中の情報としてはGNUのsedに関する情報が多いです。
ぐぐって調べる時なども、GNU版sedの情報が真っ先に出てくると思うので、普段からGNUのsedを使うようにしていたほうが楽だと感じています。そこで、homebrewでGNUのsedをインストールして使っています。

下記のようにbrewでGNUのsedをインストールします。

インストール後、下記のようにgsedコマンドと実行することにより、LinuxのGNU版sedと同様の動作となります。
先程はエラーとなっていましたが、下記のようにgsed ~ と実行することで、エラーが起きずに正常動作するようになります。

gsedをsedとタイプして使えるようにalias設定

Linuxと同様に、sedと実行することで、GNUのsedが実行されるようにalias設定します。

まずは、viで~/.bashrc を編集します。
(viの編集方法は省略します)

下記のalias設定を追加します。

下記を実行して、~/.bashrcを読み込みます。

すると、下記のようにLinuxのGNUのsedと同様に、-iオプションに何も設定しないと、結果が上書きされます。
Macでもsedと実行することで、Linuxと同様の動作をさせることができます。

エンジニアのスキルを活かして、理想の働き方を求めていこう

エンジニアとして新しい働き方を求める方へ、MIDWORKS

MIDWORKSは、週3日から可能な案件も紹介していて、フレキシブルな働き方を求めるにとってはおすすめです。

MIDWORKS

MIDWORKSでは、万が一仕事が途切れてしまった場合の給与保証制度があります。 給与保証制度を適用している場合は、仕事が見つからなかった時に月額契約単価の80%を日割りで受け取ることができます。
安定した収入を求めるフリーランスにとっては、安心して案件を探すことができると言えます。

MIDWORKSに無料会員登録する

開発言語に応じた案件を探すことができるので、 自身のスキルアップの機会として、案件を探すのも有効な手だと思います。

スポンサーリンク