sed を使用して文字列からテキストを抽出するにはどうすればよいでしょうか? 質問する

sed を使用して文字列からテキストを抽出するにはどうすればよいでしょうか? 質問する

私の例の文字列は次のとおりです。

This is 02G05 a test string 20-Jul-2012

さて、上記の文字列から抽出したいもの02G05。そのためにsedで次の正規表現を試しました。

$ echo "This is 02G05 a test string 20-Jul-2012" | sed -n '/\d+G\d+/p'

しかし、上記のコマンドは何も出力しません。その理由は、sed に指定したパターンと一致するものが何もないことにあると考えられます。

そこで私の質問は、ここで何が間違っているのか、そしてそれをどのように修正するのかということです。

上記の文字列とパターンをPythonで試してみると、次のような結果が得られます

>>> re.findall(r'\d+G\d+',st)
['02G05']
>>>

ベストアンサー1

を使ってみてはいかがでしょうかgrep -E

echo "This is 02G05 a test string 20-Jul-2012" | grep -Eo '[0-9]+G[0-9]+'

おすすめ記事