숫자와 단위를 잘라내서 파일에 숫자로만 저장하고 싶습니다.
입력은 다음과 같습니다
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