ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.