16. paste(파일 합치기) |
1) 경로 : /usr/bin/paste
2) 요약 : 파일의 줄을 합침
3) 사용 방법 : paste [옵션] 파일...
4) 옵션
-d, --delimiters=char : 지정한 문자(char)로 열을 구분
-s, --serial : 파일을 가로를 기준으로 하여 일렬로 합침
--help : 사용법 출력
--version : 버전 정보 출력
5) 추가 설명
paste 명령어는 파일의 라인들을 합쳐 출력합니다. 아래는 test1과 test2 두 파일이 있다고 가정합니다.
# cat test1
1111 3333
5555 7777
9999 9999
# cat test2
2222 4444
6666 8888
0000 0000
아래는 각 파일을 행을 기준으로 합쳐 출력합니다.
# paste test1 test2
1111 3333 2222 4444
5555 7777 6666 8888
9999 9999 0000 0000
-s 옵션은 파일의 몯느 내용을 가로로 출력합니다.
# paste -s test1 test2
1111 3333 5555 7777 9999 9999
2222 4444 6666 8888 0000 0000
아래는 루트 디렉터리(/)에 있는 모든 디렉터리를 세미콜론(;)을 구분으로 하나의 열에 출력합니다.
# ls / | paste -d ';' -s
bin;boot;CD-ROM;dev;etc;home;lib;lost+found;media;mnt;opt;proc;root;sbin;selinux;srv;sys;tmp;usr;var
17. pr(파일 인쇄 설정) |
1) 경로 : /usr/bin/pr
2) 요약 : 텍스트 파일을 인쇄할 수 있는 표준 출력으로 변환
3) 사용 방법 : pr [옵션] [파일]
4) 옵션
-COLUMN, --columns=COLUMN : 열의 행을 값(COLUMN)만큼 지정. 기본값은 1
-a, --across : -COLNUM과 함께 세로보다 가로로 출력
-c, --show-control-chars : 보이지 않는 문자들을 프린트 가능한 문자로 변환
-d, --double-space : 공백을 더블 스페이스로 출력
-D, --date-format=FORMAT : 머리말의 날짜 형태(FORMAT)을 지정
-e[char[width]], --expand-tabs[=char[width]] : 탭의 너비(width)를 지정. 기본값 8
-F, -f, --form-feed : 줄 바꿈 문자 대신 용지 공급문자(form feed)를 사용
-h header, --header=header : 머리말(header)을 지정
-i[char[width]], --output-tabs[=width]] : 공백을 탭으로 변경. 너비(width)는 탭 문자의 크기를 지정. 기본값 8
-J, --join-lines : 모든 행을 합침, 이는 -W 옵션을 무시
-l(엘) page_length, --length=page_length : 쪽 길이(page_length)를 지정. 기본값은 66행
-m, --merge : 하나의 파일 형태로 출력
-n[delimiter[digits], --number-lines[=demimiter[digits] : 행의 번호를 출력. 구분자(delimiter)를 지정하고 (기본값은 탭) 너비(width)를 지정. 기본값 5
-o(오) width, --indent=width : 들여쓰기 너비(width)를 지정. 기본값 0
-r, --no-file-warning : 경고 메시지를 출력하지 않음
-s[delimiter], --separator[=delimiter] : 열의 구분자(delimiter)를 지정. 기본값은 탭
-t, --omit-header : 쪽 머리말과 고리말을 생략
-T, --show-nonprinting : -t 옵션과 비슷하나 용지 공급 문자(form feed)까지 제거
-v, --show-nonprinting : 출력되지 않는 문자를 출력 가능한 문자로 변환
-w page_width, --width=page_width : 쪽의 행(page_width)을 지정. 기본값은 72. -s 옵션에 영향을 받음
-W page_width, --page-width=page_width : 쪽의 행(page_width)를 지정. 기본값은 72. -J 옵션을 제외하고, -S, -s 옵션에 영향을 받지 않음
--help : 사용법 출력
--version : 버전 정보 출력
5) 추가 설명
pr 명령어는 텍스트 파일을 프린트가 가능한 형태로 페이지를 나눕니다. 여기에는 페이지 번호, 날짜, 시간 및 파일 이름을 가진 머리말이 포함됩니다.
아래는 pr 명령어로 커널 소스의 문서 파일을 프린트가 가능한 형태로 저장합니다. 굵게 표시한 내용처럼 머리말 부분에 프린트 날짜와 텍스트 파일명, 페이지 번호를 볼 수 있습니다.
# pr Documentation/BUG-HUNTING > ~/BUG-HUNTING.TXT
# cat ~/BUG-HUNTING.TXT
2020-03-31 18:05 Documentation/BUG-HUNTING 1 페이지
Table of ontents
============================
Last updated: 30 March 2020
Contents
==========
- Introduction
- Devices not appearing
- Finding path that caused a bug
-- Finding using git-bisect
-- finding it the old way
- Fixing the bug
Introduction
=============================
Always try the latest kernel from kernel.org and build from source,
If you ar not confident in doing that please report the bug to your distribution vendor insted of to a kernel developer.
... 생략 ...
아래와 같이 내용을 화면에 출력하는 동시에 파이프(|)를 사용하여 프린터로 프린트 할 수 도 있습니다.
# pr ~/BUG-HUNTING.TXT | lpr
-h 옵션은 머리말의 제목을 지정합니다.
# pr -h "HOW TO Kernel Bug-Hunting" Documentation/BUG-HUNTING_TITLE.TXT
기존 BUG-HUNTING.TXT 파일과 BUG-HUNTING_TITLE.TXT 파일일 비교하여 봅니다.
아래와 같이 제목만 변경되었습니다.
# diff -Npur BUG-HUNTING.TXT BUG-HUNTING_TITLE.TXT
--- BUG-HUNTING.TXT 2020-03-31 18:05:30.4900590 -0700
+++ BUG-HUNTING_TITLE.TXT 2020-03-31 18:05:45.4315440 -0700
@@ -1,6 +1.6 @@
-2020-03-31 19:51 Documentation/BuG-HUNTING 1 페이지
+2020-03-31 19:52 HOW TO kernel Bug-Hunting 1 페이지
한 페이지를 넘거가는 파일의 내용을 한 장의 용지에 프린트 할 수 있습니다.
# pr -m -h "TEST PAGES" test1.txt test2.txt | lpr
18. rev(파일 행 역순 출력) |
1) 경로 : /usr/bin/rev
2) 요약 : 파일의 행을 기준으로 역순 출력
3) 사용 방법 : rev [파일]
4) 추가 설명
rev 명령어는 파일을 행 단위로 읽어 각 행의 문자를 역으로 변환하여 출력합니다. 아래와 같이 인자를 지정하지 않으면 표준 입력으로 변환할 문자를 입력 받습니다.
# rev
chanchan
father
is
superman
아래와 같은 테스트 파일이 있다고 가정합니다.
# cat test.txt
123456789
112233445566778899
rev 명령어는 위의 파일 내용을 역순으로 출력합니다.
# rev test.txt
987654321
998877665544332211
19. sdiff(파일 비교) |
1) 경로 : /usr/bin/sdiff
2) 요약 : 행을 기준으로 파일의 차이점을 비교
3) 사용 방법 : sdiff [옵션] 파일1 파일2
4) 옵션
-o(오) FILE, --output=FILE : 지정한 파일(FILE)로 내용을 출력
-i, --ignore-case : 대소문자를 구분하지 않음
-E, --ignore-tab-expansion : 파일 간의 탭 차이를 무시
-b, --ignore-space-change : 파일 간의 공백 차이를 무시
-W, --ignore-all--space : 모든 공백으 무시
-B, --ignore-blank-lines : 파일 간의 빈 행의 차이를 무시
-I(아이) RE, --ignore-matching-lines=RE : 지정한 값(RE)과 매치되는 것은 무시
--strip-trailing-cr : 입력에서 줄 바꿈 문자를 제거
-a, -text : 모든 파일을 텍스트로 취급
-w NUM, --width=NUM : 열의 넓이(NUM)를 지정
-l(엘), --left-column : 왼쪽의 열만 출력
-s, --suppress-common-lines : 파일간 중복되는 행은 출력하지 않음
-t, --expand-tabs : 탭을 공백으로 변환하여 출력
--diff-program=PROGRAM : 파일 비교를 위한 프로그램(PROGRAM)을 지정
-v, --version : 버전 정보 출력
--help : 사용법 출력
5) 추가 설명
sdiff 명령어는 diff와 비교하여 두 파일 간의 차이를 하나의 행으로 출력합니다.
-s 옵션은 파일 간에 중복되는 행은 출력하지 않습니다.
# sdiff -s hello.c hello_new.c
printf("Hello, World\n"); | printf("Hello, New World\n");
# diff -Npur hello.c hello_new.c
--- hello.c 2020-04-01 17:50:54.890890 + 0900
--- hello_new.c 2020-04-01 17:52:22.234213 + 0900
@@ -2,6 +2,6 @@
int main()
{
- printf("Jello, World\n");
+ printf("Hello, New World\n);
return 0;
}
20. sort(내용 정렬) |
1) 경로 : /bin/sort
2) 요약 : 텍스트 파일의 내용을 알파벳 순서대로 정렬
3) 사용 방법 : sort [옵션] [파일]
4) 옵션
<정렬 옵션>
-b, --ignore-leading-blanks : 공백을 무시
-d, --dictionary-order : 공백과 알파벳 문자의 순서를 비교
-f, --ignore-case : 모든 문자를 소문자로 인식
-g, --general-numeric-sort : 숫자 값을 비교 정렬
-i, --ignore-nonprinting : 프린트 가능한 문자만 비교
-M, --month-sort : 날짜(월) "알 수 없는 비교 값" < "JAN" < ... < "DEC" 순서로 정렬
-n, --numeric-sort : 숫자를 기준으로 정렬
-r, --reverse : 결과를 역으로 출력
<또 다른 옵션>
-c, --check : 파일이 정렬되어 있는지 아닌지 검사
-k, --key=pos1[,pos2] : 시작 위치(pos1)와 마지막 위치(pos2)를 지정
-m, --merge : 복수의 입력 파일을 병합
-o(오), --output=file : 결과를 지정한 파일(file)에 저장
-S, --buffer-size=size : 메인 메모리의 버퍼 크기(size)를 지정
-t, --field-separator=sep : 필드 구분지(sep)를 지정
-T, --temporary-directory=dir : 기본값인 $TMPDIR 대신에 임시 디렉터리(dir)를 지정
-u, --unique : 필드 내에서 중복되는 값을 제거하고 출력
--help : 사용법 출력
--version : 버전 정보 출력
5) 추가 설명
sort 명령어는 파일 내용을 분석하여 행을 기준으로 구분하고 결과를 정렬하여 출력합니다. 만일 입력 파일이 두 개 이상이면 파일을 병합하여 하나의 파일로 인식합니다. 아래는 /etc/ 디렉터리의 내용을 정렬하여 출력합니다.
# ls /etc/ | sort | more
CORBA
DIR_COLORS
FreeWnn
Muttrc
X11
a2ps-site.cfg
a2ps.cfg
adjtime
alchemist
aliases
aliases.db
aliases.rpmnew
aliases.rpmsave
amanda
amandates
amd.conf
amd.net
---More---
-u 옵션은 필드 내에서 중복되는 행을 제거합니다. 이는 uniq 명령어와 같습니다.
# cat sortfile
1234
1234
1233
1222
1234
1222
12345
# sort -u sortfile
1222
1233
1234
12345
아래와 같이 대소문자로 구분된 이메일 주소들이 있다고 가정합니다.
# cat sortfile2
111
122
123
admin@chanchan.co.kr
ADmin@chanchan.co.kr
ADMIN@CHANCHAN.CO.KR
-f 옵션은 대소문자로 구별하지 않고 결과를 하나의 이메일 주소로 출력합니다.
# sort -fu sortfile2
111
122
123
admin@chanchan.co.kr
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 파일 조작 명령어 6탄(ul, unexpand, uniq, wc) (0) | 2020.04.02 |
---|---|
[RHEL6] 파일 조작 명령어 5탄(split, tac, tee, tr) (0) | 2020.04.02 |
[RHEL6] 파일 조작 명령어 3탄(expand, hexdump, join, look, nl) (0) | 2020.03.31 |
[RHEL6] 파일 조작 명령어 2탄(colrm, column, comm, csplit, cut) (0) | 2020.03.31 |
[RHEL6] 파일 조작 명령어 1탄(a2p, awk, cmp, col, colcrt) (0) | 2020.03.31 |
댓글