拡張RegExpを使用したSedコマンドの理解

拡張RegExpを使用したSedコマンドの理解

私は現在、最新のリリースバージョンのdocker-compose

curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | grep "tag_name" | sed -E 's/.*"([^"]+)".*/\1/'

これは私のコードではありません。コピーして貼り付けたのに効果があってもっと学びたかったです。特に私はこのコマンドに興味がありますsed。誰でも私がよりよく理解するのを助けることができますか?

sed -E 's/.*"([^"]+)".*/\1/'

基本的に私は文字列を理解していません。私はこれらの項目を個別に知っています(.*=すべての文字または文字、[^"]=未知のすべての項目を許可")。しかし、このように書くと、どのように機能するのかわかりません。

コマンドなしのコマンド出力sed"tag_name": "1.22.0",

コマンドの出力は次のとおりですsed1.22.0

ベストアンサー1

sed -E 's/.*"([^"]+)".*/\1/

  • -Esed拡張正規表現を使用します。
  • 's': 代替値。
  • /:使用するパターンと代替区切り記号。
  • .*"([^"]+)".*:正規表現を説明する最良の方法は、画像を使用することです。
    正規表現の移行
    デフォルトでは、2つの引用符ブロックを持つすべての行を一致させ、最初のグループ内に2番目の引用符(引用符を除く)を入れます。
  • /: 正規表現と置換式の区切り文字
  • \11.22.0: この例では、元の行をグループ番号 1 に置き換えます。
  • /: 最後の区切り文字の後にはオプションがないため、1 行に 1 回だけ置き換えられます。

これが十分に説明されることを願っています。
より視覚的な方法で正規表現を読む必要がある場合は、次のものを使用できます。ウェブサイト正規表現本当にすごいです。

おすすめ記事