sedを使用して2文字間の数字を抽出するには?

sedを使用して2文字間の数字を抽出するには?

任意のテキストの後には、コロン(:)とスペース、数値結果、別のスペース、およびその他の任意のテキストがあります。たとえば、次のようになります。

text: 30 (5 new)

たとえば、数値を抽出します30

30

現在、次のコードのみがあります。

sed 's/.*: //g'

これは私に次のような結果を与えます:

30 (5 new)

私は何を見逃していますか?

ベストアンサー1

式('s/.*: //g')は最初の部分を削除し、残りはすべて保持します。これにより、行全体が目的の数字を含む部分に置き換えられます。

sed -re 's/^.*: ([0-9]+) .*$/\1/'

詳細:^.*:は最初の部分(行の先頭に相当)、番号は次であり、後で使用([0-9]+)できるグループを定義するために括弧内にあり、最後に最後まで行の残りの部分です。.*$その後、これを最初のグループに置き換えます(1つのみ)。\1

おすすめ記事