-
cat리눅스 엔지니어링 기술/5. 명령어 2024. 9. 24. 16:03
안녕하세요, MJ 입니다.
cat 명령어는 일반 파일을 터미널상에 출력하는 명령어 입니다.
cat 명령어에 대해 알아보겠습니다.
1. 리눅스 파일 출력.
cat 명령어 뒤에 파일 이름을 주면 파일의 내용을 출력할 수 있습니다.
[run-linux cat]$ ls -l total 12 -rw-r--r-- 1 root root 18 Sep 24 15:11 A_file -rw-r--r-- 1 root root 18 Sep 24 15:11 B_file -rw-r--r-- 1 root root 18 Sep 24 15:11 C_file [run-linux cat]$ cat A_file A_file: testprint [run-linux cat]$ cat A_file B_file A_file: testprint B_file: testprint [run-linux cat]$ cat A_file B_file C_file A_file: testprint B_file: testprint C_file: testprint [run-linux cat]$
각 라인 번호 메기기
"-n" 옵션을 사용하여 라인 번호를 출력합니다.[run-linux cat]$ cat A_file line 1 line 2 line 5 line 6 [run-linux cat]$ cat -b A_file 1 line 1 2 line 2 3 4 5 line 5 6 line 6 [run-linux cat]$
"-b" 옵션을 사용하여, 비어있는 라인에는 번호를 매기지 않습니다.
[run-linux cat]$ cat -b A_file 1 line 1 2 line 2 3 line 5 4 line 6 [run-linux cat]$
한 줄의 끝을 리눅스에서는 $ 기호로 표시합니다.
중요한 설정 파일을 작성할 때, 끝에 공백이 포함되면 안될 경우 이를 체크할 때에 용이합니다.
"-E" 옵션을 사용합니다.[run-linux cat]$ cat A_file username1: user_01 password1: pass01 username2: user_02 password2: pass02 username3: user_03 password3: pass03 username4: user_04 password4: pass04 [run-linux cat]$ cat -E A_file username1: user_01$ password1: pass01$ username2: user_02$ password2: pass02 $ username3: user_03$ password3: pass03$ username4: user_04 $ password4: pass04$
: 극단적인 예로, 위 내용으로 계정이 설정되어있다면,
user_02 와 user_04 는 의도 한 공백 입력이 아니었다면, 로그인에 실패하게 될 것입니다.탭 대신 탭 기호를 출력
파일의 내용에 탭(TAB) 문자가 포함된 경우, 이것이 공백을 여러번 입력 한 것인지, 탭을 입력한것인지 알 수 없어
그 사실을 확인하기위해 탭 문자를 특수 기호로 표시되도록 할 수 있습니다.
: 탭 문자 대신 표시되는 특수기호는 컨트롤 i(대문자) 처럼 생겼습니다. → ^I[run-linux cat]$ ls -l total 4 -rw-r--r-- 1 root root 31 Sep 24 14:58 A_file [run-linux cat]$ cat A_file hello World~! Nice to meet you [run-linux cat]$ cat -T A_file hello^IWorld~! Nice to^Imeet you [run-linux cat]$
연속된 빈 라인 출력 안함
빈 라인이 두 번 이상 연속될 때, 하나의 빈 라인만 출력되게 만들기 위해 "-s" 옵션을 사용합니다.
: 다음 예시에서는 빈 라인의 수를 쉽게 파악할 수 있도록 -n 옵션을 함께 사용하여 줄번호를 표시하였습니다.[run-linux cat]$ ls -l total 4 -rw-r--r-- 1 root root 58 Sep 24 14:54 A_file [run-linux cat]$ cat A_file -n 1 line number 1 2 line number 2 3 4 5 line number 5 6 line number 6 [run-linux cat]$ cat A_file -n -s 1 line number 1 2 line number 2 3 4 line number 5 5 line number 6 [run-linux cat]$
출력 리다이렉션(>)을 사용하여 파일의 내용을 복사하듯 저장 할 수 있습니다.
[run-linux cat]$ ls -l total 4 -rw-r--r-- 1 root root 18 Sep 24 14:49 A_file [run-linux cat]$ cat A_file A_file: testprint [run-linux cat]$ cat A_file > A_file_backup [run-linux cat]$ ls -l total 8 -rw-r--r-- 1 root root 18 Sep 24 14:49 A_file -rw-r--r-- 1 root root 18 Sep 24 14:52 A_file_backup [run-linux cat]$ cat A_file A_file: testprint [run-linux cat]$ cat A_file_backup A_file: testprint
여러 개의 파일을 한번에 리다이렉션 하여 하나로 합칠 수 있습니다.
[run-linux cat]$ ll total 12 -rw-r--r-- 1 root root 18 Sep 24 14:49 A_file -rw-r--r-- 1 root root 18 Sep 24 14:49 B_file -rw-r--r-- 1 root root 18 Sep 24 14:49 C_file [run-linux cat]$ cat A_file A_file: testprint [run-linux cat]$ cat B_file B_file: testprint [run-linux cat]$ cat C_file C_file: testprint [run-linux cat]$ cat A_file B_file C_file > result_file [run-linux cat]$ cat result_file A_file: testprint B_file: testprint C_file: testprint [run-linux cat]$
리다이렉션(>>) 두개를 사용하여 파일 뒤에 내용추가
[run-linux cat]$ ls -l total 16 -rw-r--r-- 1 root root 18 Sep 24 14:45 A_file -rw-r--r-- 1 root root 18 Sep 24 14:45 B_file -rw-r--r-- 1 root root 18 Sep 24 14:45 C_file [run-linux cat]$ cat A_file A_file: testprint [run-linux cat]$ cat B_file B_file: testprint [run-linux cat]$ cat C_file C_file: testprint [run-linux cat]$ cat A_file > result_file [run-linux cat]$ cat B_file >> result_file [run-linux cat]$ cat C_file >> result_file [run-linux cat]$ cat result_file A_file: testprint B_file: testprint C_file: testprint
파일 사이에 내용 추가하기.
cat 명령 다음에 파일 이름 대신 하이픈(-) 을 사용하면 표준 입력을 통해 입력받은 내용을 출력할 수 있다고 설명했었습니다. 이 기능을 사용하면, 여러 파일을 합칠 때 파일 사이에 사용자가 원하는 임의의 내용을 추가할 수 있습니다.
[run-linux cat]# ls -l total 16 -rw-r--r-- 1 root root 18 Sep 24 14:36 A_file -rw-r--r-- 1 root root 18 Sep 24 14:36 B_file -rw-r--r-- 1 root root 18 Sep 24 14:36 C_file [run-linux cat]# cat A_file A_file: testprint [run-linux cat]# cat B_file B_file: testprint [run-linux cat]# cat C_file C_file: testprint [run-linux cat]# cat A_file B_file C_file - > result_file ##### THE END ##### -> 하이픈(-) 위치로 입력하고싶은 내용을 입력 후 '[Ctrl + D] 입력' [run-linux cat]# ls -l total 16 -rw-r--r-- 1 root root 18 Sep 24 14:36 A_file -rw-r--r-- 1 root root 18 Sep 24 14:36 B_file -rw-r--r-- 1 root root 18 Sep 24 14:36 C_file -rw-r--r-- 1 root root 74 Sep 24 14:37 result_file [run-linux cat]# cat result_file A_file: testprint B_file: testprint C_file: testprint ##### THE END ##### [run-linux cat]#
cat 명령어에 대해 알아보았습니다.
문의사항은 댓글을 남겨주시면 성심껏 답변을 드리도록 하겠습니다.
감사합니다.
'리눅스 엔지니어링 기술 > 5. 명령어' 카테고리의 다른 글
ls (8) 2024.09.20