複数ファイルの先頭にsed挿入が機能しない

複数ファイルの先頭にsed挿入が機能しない

私は偶然会ったたくさんエッセイを含む答え:

そして私が望むことをする方法を見つけることができません。ディレクトリ内のすべてのファイル#encoding:utf-8の先頭に(再帰的に)挿入する必要があります。.html.erbこのコマンドを試してみました。

find . -iname "*.erb" -type f -exec sed -ie "1i \#encoding:utf-8" {} \;

ただし、次のエラーが発生します。

sed: 1: "1i #encoding:utf-8": i コマンドの最後で \ の後に追加文字

ベストアンサー1

その場でファイルを編集OSX sed、空の拡張子を設定する必要があります。

$ sed -i '' '1i\
#encoding:utf-8' filename

その後、改行文字が必要ですi\。これは次のために発生します。POSIX sed

ただGNU sedテキストとコマンドを同じ行に挿入できます。

sed同時に複数のファイルを処理することも可能ですので、-exec command {} +次の形式を使用してください。

$ find . -iname "*.erb" -type f -exec sed -i '' '1i\
#encoding:utf-8' {} +

おすすめ記事