반달가면 이글루에서 백업 - http://bahndal.egloos.com/533075
C언어를 배우면서 가장 먼저 나오는 함수가 printf일텐데, 리눅스 스크립트에서도 printf 명령이 거의 같은 형태로 구현되어 있어서 특정한 형식에 맞춰서 결과를 출력하고 싶을 때 요긴하게 쓸 수 있다.
아래의 몇가지 예시를 보면 감을 잡을 수 있을 것이다. 기본 형태는 printf [형식] [내용] 이런 식이다.
# 줄바꿈(new line) 없이 문자열(%s) 출력
printf "%s" "Hello World"
Hello World(명령 프롬프트가 바로 뒤에 위치)
# 줄바꿈 포함 문자열 출력(\n)
printf "%s\n" "Hello World"
Hello World
(명령 프롬프트가 다음 줄에 위치)
# 탭으로 구분하기(\t)
printf "%s\t%s\n" "Hello" "World"
Hello World
# 앞에 0을 출력하면서 네자리로 정수(%d) 출력
printf "%04d\n" "123"
0123
# 소수점 두번째 자리까지 실수(%f) 출력(세번째 자리부터 반올림)
printf "%.2f\n" "123.556"
123.56
출력값의 길이를 지정해서 아래의 예시처럼 들여쓰기를 할 수도 있다.
# 길이 7, 소수점 두번째 자리까지 출력
printf "%7.2f\n" "123.556"
123.56
# 길이7, 앞에 0을 출력하면서 소수점 두번째 자리까지 출력
printf "%07.2f\n" "123.556"
0123.56
여러개의 항목을 같이 출력할 때도 요긴하다. 아래의 예시를 보자.
# 이름[탭]이메일[탭]점수
printf "%s\t%s\t%.2f\n" "john" "john@mail.net" "75.332"
john john@mail.net 75.33
16진수를 10진수로, 또는 10진수를 16진수로 바꿀 때도 편리하다.
# 16진수를 10진수로
printf "%d\n" "0xfeff"
65279
# 10진수를 16진수로
printf "%x\n" "65279"
feff
'bash script' 카테고리의 다른 글
[bash: function] 함수를 이용한 동시 작업(백그라운드 실행) (0) | 2023.04.07 |
---|---|
[bash: find] 파일/디렉토리 검색 속도 향상을 위한 색인(index) 만들기 (0) | 2023.04.07 |
[bash: $?] 오류 발생 여부 확인 (0) | 2023.04.07 |
[bash: if] if 조건문에서 대괄호([ ]) 사용 (0) | 2022.08.05 |
[bash: find] find 명령에서 하위 디렉토리 범위를 지정해서 검색하기 (0) | 2021.09.24 |