数字と単位を切り取り、ファイルに数字としてのみ保存したいと思います。
入力は次のとおりです
Data byte rate: 24 bytes/s
Average packet size: 118.59 bytes
Data byte rate: 2 Kbytes/s
Average packet size: 10 Kbytes
予想される出力は次のとおりです。
24
118.59
2000
10000
これまで私がしたことは、ただ番号を検索することだけでした。
sed -r 's/.* ([0-9]+\.*[0-9]*).*?/\1/'
答え1
型変換の場合、オプションの乗数をキャプチャして保持し、結果を次にパイプすることができます。numfmt
だから
$ sed -r 's/.* ([0-9]+\.?[0-9]*)[ \t]*([kKMGTP])?.*/\1\U\2/' input
24
118.59
2K
10K
これは
$ sed -r 's/.* ([0-9]+\.?[0-9]*)[ \t]*([kKMGTP])?.*/\1\U\2/' input | numfmt --from si
24
118.59
2000
10000