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
。