番号を検索するスクリプトを作成します。

番号を検索するスクリプトを作成します。

数字と単位を切り取り、ファイルに数字としてのみ保存した​​いと思います。

入力は次のとおりです

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

関連情報