2017-01-22 6 views

答えて

2

数字、ドット、空白以外のすべてを削除します。

echo 'io=9839.1MB, bw=4012.3KB/s, iops=250, runt=2511369msec' | tr -cd '0-9. ' 

出力:

 
9839.1 4012.3 250 2511369 
1

sedであなたの試みは、ほぼ正しいと、ちょうど、交換から除外するための単一の空白文字を追加する必要があります

sed 's/[^0-9. ]*//g' file 
9839.1 4012.3 250 2511369 

GNU grep-Eの正規表現構文で、-oは数字とドットを含む単語のみを照合するためのものです。

grep -o -E '[0-9.]+' file 
9839.1 
4012.3 
250 
2511369 
0

魚魚する方法

// a group containing a digit and the literal character "." at least once 
 
    const regex = /([\d.]+)/g 
 
    // your string 
 
    const haystack = `io=9839.1MB, bw=4012.3KB/s, iops=250, runt=2511369msec` 
 
    
 
    console.log(haystack.match(regex))
:ここ
は、大規模なナレッジベースなど、WYSIWYGの正規表現エディタを備えた素晴らしいregex101です。 shell parameter expansion

https://regex101.com/r/a2scnd/1
0

$ var='io=9839.1MB, bw=4012.3KB/s, iops=250, runt=2511369msec' 
$ echo "${var//[![:digit:]. ]}" 
9839.1 4012.3 250 2511369 

具体的には、これはstring空とpatternため否定ブラケット発現に${parameter//pattern/string}を使用する:[![:digit:]. ] –数字、ピリオド、スペース以外のすべて。

関連する問題