サフィックスが存在しない場合にのみ、テキストの一部の行にサフィックスを追加します。

サフィックスが存在しない場合にのみ、テキストの一部の行にサフィックスを追加します。

私は次のことをしようとします:

sed -i.bak '/^startswith/ s/$/endswith/' /path/to/file

しかし、ただ以下を行う行の場合いいえすでに「endswith」という文字列で終わりました。

つまり、いくつかのテキストで始まり、次のことを行う行を探したいと思います。いいえ別のテキストで終わり、行の末尾に必要なテキストを追加します。

私が現在言及している他の部分文字列が存在しない場合にのみ、部分文字列を検索して置き換えます。マニュアルページもsedありますが、私が正しい道を行っているかどうかはわかりません。

ベストアンサー1

次の方法が有効です。

sed -i.bak '/endswith/b; /^startswith/ s/$/endswith/' /path/to/file

しかし、これが最も効率的なソリューションであるかどうかはわかりません。

おすすめ記事