sedを使用してファイルリストのファイル名を.earに変更するには?

sedを使用してファイルリストのファイル名を.earに変更するには?

次の内容を含むファイルがあります。

/appl/as/var/spool/ears/mps/ear1.ear
...

ear1.earonlyの名前を変更したいのですが、ear2.ear次のsedコマンドを使用していますが、運がありません。

sed -i.bak s/*.ear/ear2.ear/g earlist.mps

earlist.mpsファイル名はどこにありますか?

私は試した:

sed -i.bak s/.*.ear/ear2.ear/g earlist.mps

しかし、これを行うと、ファイル全体がear2.ear

答え1

そしてsed

sed 's|/[^/]\+\.ear$|/ear2.ear|' file
  • .ear(行末と一致)で$終わる行を検索します。ファイル名は、/以下を除くすべてのものにすることができます[^/]\++文字(ではない/)を1回以上繰り返すことができることを示します。
  • 次に、一致を/ear2.ear

関連情報