インソース
2018.04.10 システム
Macローカルでsed置換すると「sed: 1: invalid command code R」になる時の対処方法
マリンロードスタッフブログをご覧いただいている皆様、こんにちは。
フロントエンドエンジニアの虎澤です。
先日、Macのローカル環境内で、ターミナルからsedを使って一括置換する作業を行いました。
例えば、以下のようなコマンドを打ったとします。
すると、「sed: 1: invalid command code R」というエラーが出てしまいました。
調査したところ、sedマニュアルのiオプションについてはこう書いてありました。
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.
どうやら、Mac環境でのsedコマンドでiオプションを使う場合は、拡張子の指定が必須らしいのです。
ただ、推奨はされていませんが、nullでも通りそうだったので、以下のように書き換えて実行してみました。
無事置換できました!
他にも、「sed: RE error: illegal byte sequence」というエラーが出る場合は、
と打てば無事置換できるようになります。
しかし、Macローカルで標準でUNIX系コマンドが使えるのはとても便利ですね。
今までエディタ経由でやっていた一括置換も、コマンドを使うほうが効率があがりそうです。
以上、虎澤でした。
インソースが書いた他の記事
見積もり・ご依頼など、
お気軽にご相談ください
フリーダイアル
受付時間 8:30〜17:30(土・日・祝・年末年始を除く)
