Work Life Fun

Macのsedでエラー「command i expects \ followed by text」が出た場合の解決法

作成:
カテゴリー: 業務効率化
タグ: bash

みんな大好きbashの話、といっても、現在のmacOSのデフォルトは、bashからzshに変更されているので、以下はzshを用いる場合の解説になります。

Macのsedでエラー「command i expects \ followed by text」

特定の行に行数を明示して文字列を挿入する方法(sed)」の記事のとおり、人事労務の実務では「sed」が役立つ場面が結構あります。

Unixの歴史を少しでも知っている人なら、MacはBSD系、LinuxはGNU系というのは有名ですが、実際に利用しているとその違いを感じることはほぼありません。

ただ、「sed」を用いる場面で、まさにこの両者の挙動の違いにハマりました。

具体的には、Macのターミナルで、2行目に「hoge」を挿入する以下のコマンドを打つと、

$ sed -e "2i hoge" test.txt
command i expects \ followed by text

と怒られます。そのため、以下の参考記事に従い、まずはgnu-sedをインストールします。

参考:sedでcommand i expects \ followed by textが出た

Macではsedでなくgsed

以下のコマンド、「sed」ではなく「gsed」を使えば、問題解決です。

$ gsed -e "2i hoge" test.txt

【無料】毎月1回、効率的に人事労務の情報を入手しませんか?

あべ社労士事務所は、毎月1回、

  • 毎年のように改正される労働法令への対応に頭を悩ませている
  • 働き方の見直しといっても、具体的な実務でどう対応すれば良いかわからない
  • 総務や経理などの他の業務を兼務しているので、人事労務業務だけに時間を割けない

といった悩みを抱える経営者・人事労務担当者向けに、公開型のブログでは書けない本音を交えて、人事労務に関する情報・ノウハウ、時期的なトピックをメールマガジンでお送りしています。

しかも「無料」で。

過去の配信分は公開しません。

情報が必要な方は、いますぐ、以下のフォームから購読の登録をしてください。

購読して不要と思ったら簡単に解除できますのでご安心ください。

注意

氏名の欄には、本名を漢字で入れてください。
たまに「たこ」など明らかにふざけた名前を登録する方がいますが、見つけ次第、削除しています。