私の例の文字列は次のとおりです。
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]+'