数字を含むgrepワード

数字を含むgrepワード

2つの文字列があります

"Some Special xn39432n4 (foo bar)"
"Another thing goes 21 deer 14.5"

を使用すると、sedこの出力が必要です。

xn39432n4
21 deer 14.5

数字(最初の発生から最後の発生まで)とその間に数字以外の単語を含むスペースで区切られたすべての単語を表します。

ベストアンサー1

たぶん、次のようなものがあります。

sed -n '
  s/\([^[:space:]]*[[:digit:]][^[:space:]]*\(.*[[:digit:]][^[:space:]]*\)\{0,1\}\).*/\
\1/
  s/.*\n//p' < your-file

spaceこれは、1つ以上のdigitオプション()を含む白以外のシーケンスと一致し、\{0,1\}その後に文字シーケンスが続き、その後に数字が続き、spaceその後にすべて白以外のシーケンスが続きます。

これはでキャプチャされ\1、()の後の文字を捨て、.*その前に改行文字を挿入します。この文字は、次のコマンドで前の内容とともに削除されますs

おすすめ記事