18. 포맷 출력 (즐 거 운 Linux 명령 줄)

1. 이 장의 명령
nl
줄 번호 추가
fold
파일 너비 제한
fmt
텍스트 형식 변환기
pr
텍스트 인쇄 준비
printf 
포맷 데이터 출력
groff
파일 포맷 시스템
2. 지식 포인트
지식 포인트 1: nl 태그 와 옵션 은 어떤 것 이 있 습 니까?
\:\:\:
논리 페이지 머 릿 말 시작 부분
\:\:
논리 페이지 주체 시작 부분
\:
논리 페이지 꼬 릿 말 시작 부분
-b style
body 를 요구 되 는 방식 에 따라 줄 을 세 는 것 은 다음 과 같은 방식 일 수 있 습 니 다. a = 모든 줄 t = 수 는 빈 줄 이 아 닙 니 다.기본 설정 입 니 다.n = pregexp 없 음 = 정규 표현 식 과 일치 하 는 줄 만 셀 수 있 습 니 다.
-f style
footer 를 요 구 된 설정 수 에 따라 설정 합 니 다.묵인
-h style
header 를 요 구 된 설정 수 에 따라 설정 합 니 다.묵인
-i number
페이지 증 가량 을 숫자 로 설정 합 니 다.묵인 은 하나 다.
-n format
숫자 형식 을 설정 합 니 다. 형식 은 ln = 왼쪽, 선도 0 이 없습니다.rn = 오른쪽, 선도 0 이 없습니다.rz = 오른쪽, 선도 0.
-p
모든 논리 페이지 의 시작 에 페이지 수 를 재 설정 하지 마 십시오.
-s string
모든 줄 의 끝 에 문 자 를 붙 여 분할 기 호 를 한다.기본 값 은 하나의 tab 입 니 다.
-v number
모든 논리 페이지 의 첫 줄 을 숫자 로 설정 합 니 다.묵인 은 하나 다.
-w width
줄 의 폭 을 기본 값 으로 6 으로 설정 합 니 다.
지식 점 2: printf 변환 규범 구성 요소?
구성 요소
묘사 하 다.
d
숫자 를 기호 가 있 는 10 진수 로 포맷 하 다.
f
부동 소수점 을 포맷 하고 출력 합 니 다.
o
정 수 를 8 진수 로 포맷 하 다
s
문자열 포맷
x
정 수 를 16 진수 로 포맷 하고 필요 할 때 소문 자 a - f 를 사용 합 니 다.
X
x 와 같 지만 대문자 로 변 합 니 다.
%
% 기호 인쇄 (예 를 들 어 '%%' 지정)
구성 요소
묘사 하 다.
flags
5 가지 서로 다른 표지 가 있 습 니 다: \ # – "예비 형식" 으로 출력 합 니 다.이것 은 데이터 형식 에 달 려 있다.o (8 진수) 변환 에 대해 출력 은 0 을 접두사 로 합 니 다. x 와 X (16 진수) 변환 에 대해 출력 은 각각 0 x 또는 0 X 를 접두사 로 합 니 다.0 – (0) 0 으로 출력 을 채 웁 니 다.이 필드 는 "000380" 과 같은 선도 0 을 채 울 것 임 을 의미 합 니 다. - –왼쪽 정렬 출력.기본 적 인 상황 에서 printf 오른쪽 정렬 출력. '-'(빈 칸) 정수 앞 에 한 칸 을 비 웁 니 다. + –(플러스) 정수 전에 플러스 를 추가 합 니 다.기본적으로 printf 는 음수 앞 에 만 기 호 를 추가 합 니 다.
width
최소 필드 너비 의 수 를 지정 합 니 다.
.precision
부동 소수점 에 대해 서 는 소수점 뒤의 정밀도 자릿수 를 지정 합 니 다.문자열 변환 에 출력 할 문자 수 를 지정 합 니 다.
변량
격식.
결실
비고
380
"%d"
380
단순 포맷 정수.
380
"%#x"
0x17c
'대체 형식' 플래그 를 사용 하여 정 수 를 16 진수 로 포맷 합 니 다.
380
"%05d"
00380
선도 0 (padding) 으로 정 수 를 포맷 하고 최소 필드 폭 은 다섯 글자 입 니 다.
380
"%05.5f"
380.00000
전도 0 과 5 자리 소수 비트 정밀 도 를 사용 하여 부동 소수점 으로 포맷 합 니 다.지정 한 최소 필드 너비 (5) 는 포맷 된 숫자의 실제 너비 보다 작 기 때문에 선도 0 이라는 명령 은 실제로 작용 하지 않 습 니 다.
380
"%010.5f"
0380.00000
최소 필드 폭 을 10 으로 늘 리 면 전도 0 이 보 입 니 다.
380
"%+d"
+380
+ 플래그 로 정 수 를 표시 합 니 다.
380
"%-d"
380
사용 - 표지 왼쪽 정렬
abcdefghijk
"%5s"
abcedfghijk
최소 필드 너비 로 문자열 을 포맷 합 니 다.
abcdefghijk
"%d"
abcde
문자열 의 정밀 도 를 적용 합 니 다. 그 중에서 절 단 됩 니 다.
3. 코드 실 기
[me@linuxbox ~]$ nl distros.txt | head
 :   cat -n

[me@linuxbox ~]$ echo "The quick brown fox jumped over the lazy dog." | fold -w 12
The quick br
own fox jump
ed over the
lazy dog.
 :   12   。         ,   80。    12 。

[me@linuxbox ~]$ echo "The quick brown fox jumped over the lazy dog."
| fold -w 12 -s
The quick
brown fox
jumped over
the lazy
dog.
 :-s       ,            。

‘fmt’ reads from the specified FILE arguments (or standard input if
none are given), and writes to standard output.

   By default, blank lines, spaces between words, and indentation are
preserved in the output; successive input lines with different
indentation are not joined; tabs are expanded on input and introduced on
output.
[me@linuxbox ~]$ fmt -w 50 fmt-info.txt | head
'fmt' reads from the specified FILE arguments
(or standard input if
none are given), and writes to standard output.
By default, blank lines, spaces between words,
and indentation are
preserved in the output; successive input lines
with different indentation are not joined; tabs
are expanded on input and introduced on output.
 :   50    。                ,    -c    。

[me@linuxbox ~]$ cat > fmt-code.txt
# This file contains code with comments.

# This line is a comment.
# Followed by another comment line.
# And another.

This, on the other hand, is a line of code.
And another line of code.
And another.
[me@linuxbox ~]$ fmt -w 50 -p '# ' fmt-code.txt
# This file contains code with comments.

# This line is a comment. Followed by another
# comment line. And another.

This, on the other hand, is a line of code.
And another line of code.
And another.
 ;  -p '#'                。

[me@linuxbox ~]$ pr -l 15 -w 65 distros.txt
2008-12-11 18:27        distros.txt         Page 1


SUSE        10.2     12/07/2006
Fedora      10       11/25/2008
SUSE        11.0     06/19/2008
Ubuntu      8.04     04/24/2008
Fedora      8        11/08/2007


2008-12-11 18:27        distros.txt         Page 2


SUSE        10.3     10/04/2007
Ubuntu      6.10     10/26/2006
Fedora      7        05/31/2007
Ubuntu      7.10     10/18/2007
Ubuntu      7.04     04/19/2007
 :-l   (  )  -w   (  )    65 , 15    “  ”。

[me@linuxbox ~]$ printf "I formatted the string: %s
" foo I formatted the string: foo [me@linuxbox ~]$ printf "I formatted '%s' as a string.
" foo I formatted 'foo' as a string. [me@linuxbox ~]$ printf "%d, %f, %o, %s, %x, %X
" 380 380 380 380 380 380 380, 380.000000, 574, 380, 17c, 17C [me@linuxbox ~]$ printf "%s\t%s\t%s
" str1 str2 str3 str1 str2 str3 [me@linuxbox ~]$ printf "Line: %05d %15.3f Result: %+15d
" 1071 3.14156295 32589 Line: 01071 3.142 Result: +32589 [me@linuxbox ~]$ printf "
\t
\t\t%s
\t
\t
\t\t

%s


\t

" "Page Tit le" "Page Content" Page Title

Page Content

[me@linuxbox ~]$ man ls | head LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... [me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc -T ascii | head LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... : man

좋은 웹페이지 즐겨찾기