본문 바로가기
Old Posts/Linux

[Linux] numfmt 명령어 사용법

by A6K 2022. 5. 2.

리눅스에서 쉘 스크립트를 작성할 때, 파일 사이즈 같은 숫자 데이터를 다루는 경우가 많다. 이 때, 숫자의 자리수가 많으면 가독성이 매우 떨어진다.

예를 들어 13631488 바이트라고 하면 정확히 어느정도의 양인지 딱 와닿지 않는다. 13MB라고 단위를 뒤쪽에 써줘야 숫자에 대한 감이 온다.

numfmt 명령어

numfmt 명령어는 숫자를 사람이 읽을 수 있는 문자 형태로 변환해주는 명령어다.

numfmt [OPTION] ... [NUMBER]

1MB 같은 문자가 몇 바이트인지 숫자로 풀어서 출력해주거나 1048567 바이트가 몇 MB인지 해석해서 출력해주는 기능을 제공한다.

예를 들어

$ numfmt --from=si 1M       # 1M를 si 단위로 풀어서 출력
1000000
$ numfmt --from=iec 1M      # 1M를 iec 단위로 풀어서 출력
1048576
$ numfmt --to=si 1000000    # 숫자를 단위를 붙인 문자로 변환 출력
1.0M
$ numfmt --to=iec 1048576   # 숫자를 단위를 붙인 문자로 변환 출력
1.0M

numfmt 명령어 옵션

옵션 설명
--debug 잘못된 입력에 대해서 경고메시지 출력
-d, --delimiter=X 공백문자 대신 X문자를 구분자(delimiter)로 사용
--field=FIELDS 입력받은 필드 중에서 몇 번째 필드에 숫자 변환을 적용할 것인지
--format=FORMAT printf 스타일의 부동소수점 포맷을 출력
--from=UNIT 입력받는 문자의 단위를 지정
--from-unit=N 입력 유닛 사이즈를 지정
--grouping 1,000,000 처럼 숫자의 자리수를 그루핑
--header=N 입력받는 첫 N 라인은 헤더로 취급해서 숫자 포맷 변환을 하지 않음
--invalid=MODE 잘 못된 형태의 입력을 받았을 때, 어떻게 동작할지 지정
(abort, fail, warn, ignore)
--padding=N N 바이트 패딩을 지정
--round=METHOD 반올림 방법을 지정
(up, down, from-zero, towards-zero, nearest)
--suffix=SUFFIX 출력되는 숫자에 SUFFIX 추가
--to=UNIT 어떤 형태의 문자열로 변환할 것인지 지정
--to-unit=N 출력 유닛 사이즈를 지정
-z, --zero-terminated 새로운 라인에 쓰지 않음
--help 명령어 도움말 출력
--version 버전 정보출력

--from과 --to 옵션에 사용할 수 있는 UNIT 값은 다음과 같다.

UNIT 옵션 설명
auto 한 단어 혹은 두 단어의 단위를 사용 1K = 1000, 1Ki = 1024, 1M = 1000000, 1Mi = 1048576
si 한 단어 단위를 사용 1K = 1000, 1M = 1000000, ...
iec 한 단어 단위를 사용 1K = 1024, 1M = 1048576, ...
iec-i 두 단어 단위를 사용 1Ki = 1024, 1Mi = 1048576, ...

관련글

 

리눅스 명령어 사용법들

리눅스 명령어 사용법 ifconfig 네트워크 인터페이스 설정관련 ls 디렉토리 엔트리 정보 출력

hbase.tistory.com

 

댓글