번호를 검색하는 스크립트를 작성하세요.

번호를 검색하는 스크립트를 작성하세요.

숫자와 단위를 잘라내서 파일에 숫자로만 저장하고 싶습니다.

입력은 다음과 같습니다

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

관련 정보