xargs sedが内容を変更するのではなく、ファイル名を変更しています。

xargs sedが内容を変更するのではなく、ファイル名を変更しています。

複雑なコマンド:

git ls-files | grep -E '\.(ts|xml|json|html|js|scss)$' | xargs sed -ie s/##tag##/1.0.0/g

過去には正しい方法で動作し、交換されていました。

だからファイルバージョン情報.html:

<p>Version: ##tag##</p>

これで2番目のファイルが作成されます。

  • バージョン情報.html
  • バージョン情報.htmle

なぜe最後に追加されましたか?

削除すると-ie内容が出ます。eから削除すると-ieエラーが表示されます。

ご意見ありがとうございます!

ベストアンサー1

プロビジョニングとは、filename+というバックアップファイルを保持しながら変更を実行することを意味します-iesede

~からman sed

   -i[SUFFIX], --in-place[=SUFFIX]

          edit files in place (makes backup if SUFFIX supplied)

他のパラメータを同時に使用するには、別々に使用する必要がありsed -iます。または、少なくとも-iバックアップファイルのサフィックスとして解釈されないように、パラメータの後にパラメータを入れないでください。

sed -i.bak -e ...

.bak拡張子をサフィックスとして使用してバックアップファイルを作成するには

sed -i -e ...

バックアップファイルが作成されないためです。

おすすめ記事