리눅스 cat 명령어
리눅스에서 텍스트 파일을 출력하는 간단한 ‘cat 명령어’는 명령어 뒤에 파일명을 적어 표준 출력(Standard Output)을 할 수 있습니다.
cat은 “연결시키다”, “연관시키다” 등의 뜻을 가지고 있는 영어단어 “concatenate”에서 유래되었습니다.
1. cat 명령어 특징
출력과 비슷한 의미의 단어가 아닌 “concatenate“라는 단어에서 유래된 이유는 “|” pipe 명령어나 “>” redirection 명령어 등과 함께 사용하는 경우가 많기 때문입니다. 결국 여러 종류의 파일이나 프로그램을 연결시키는데 유용한 명령어임을 알 수 있습니다.
~]# cat [-옵션] [파일명]
2. cat 명령어 옵션
3. 간단한 활용
~]# cat -n access_log | grep Google
31 66.102.6.143 - - [16/Nov/2023:00:24:32 +0800] "GET / HTTP/1.1" 301 707 "-" "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/[WEBKIT_VERSION] (KHTML, like Gecko; GoogleAdSenseInfeed) Chrome/[CHROME_VERSION] Mobile Safari/[WEBKIT_VERSION]"
32 66.102.6.143 - - [16/Nov/2023:00:24:32 +0800] "GET / HTTP/1.1" 301 707 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/[WEBKIT_VERSION] (KHTML, like Gecko, GoogleAdSenseInfeed) Chrome/[CHROME_VERSION] Safari/[WEBKIT_VERSION]"
33 66.249.71.200 - - [16/Nov/2023:01:32:55 +0800] "GET /ads.txt HTTP/1.1" 301 707 "-" "Google-adstxt"
57 66.249.74.136 - - [16/Nov/2023:05:32:57 +0800] "GET /ads.txt HTTP/1.1" 301 707 "-" "Google-adstxt"
75 66.249.71.200 - - [16/Nov/2023:14:02:59 +0800] "GET /ads.txt HTTP/1.1" 301 707 "-" "Google-adstxt"
번호를 매긴 후 grep 명령어로 ‘Google’ 관련된 내용만 출력한 일부분입니다.
3.1 파일 생성
~]# cat -n access_log | grep Google > Google_log
기존 명령어 조합으로 원하는 명령어 출력 후 원하는 내용의 파일을 별도로 만들 수 있습니다.
3.2 입출력 리다이렉션 활용
## 예시
~]# cat access_log_0514_* > access_log_1133_all
## 기본 사용
~]# cat file.txt
## 여러 파일 출력 후 합치기
~]# cat file.txt file2.txt file3.txt > file_all
## 파일 내용 추가
cat file5.txt >> file_all
### 새로운 내용을 입력(기존 파일 사라짐) | cat > 파일명 내용 입력 후 Ctrl + D 입력 후 빠져 나갈 수 있음.
~]# cat > file_all
### 하단에 내용을 추가 입력)
~]# cat >> file_all