🦇 Linux

리눅스 기초 명령어6 - cat, tac

ji-hyun 2021. 7. 8. 21:22

cat : 표준 입력으로 받는 값을 표준 출력으로 이어주는 명령으로 기본적으로는 텍스트 파일의 내용을 출력을 한다.

 리다이렉션 기호와 함께 사용해서 파일을 생성하거나 여러 개의 텍스트 파일을 합치는 기능도 수행한다.

 

 

cat b : b 라는 파일의 내용을 출력한다.

 

cat b -n : 텍스트 파일 b 를 출력할 때 행번호를 붙여준다. (공백만 있는 줄 포함)

cat b -b : 텍스트 파일 b 를 출력할 때 행번호를 붙여준다. (공백만 있는 줄 제외) (= nl b)

 

-> -b 옵션은 공백만 있는 줄에 행번호를 붙이지 않고, -n 옵션은 모든 줄에 행번호를 붙여서 출력한다.

 

 

 

 

 

 

 

cal > a1 : 달력을 a1 이라는 파일에 생성한다.

who > a2 : who 명령한 것을 a2 라는 파일에 생성한다.

 

 

cat a1 과 cat a2 의 출력 결과는 위와 같다.

 

 

 

 

 

 

 

 

 

cat의 옵션 알아보기>>

 

 

cat a1 에 추가적으로 -n 이라는 옵션을 주었을 경우, 행번호가 붙인 채 출력된다.

 

 

 

 

 

 

 

 

 

 

a1 과 a2 를 같이 출력할 수도 있다. 명령어 cat a1 a2 를 해보았다.

 

 

a1 과 a2 가 순서대로 출력됨을 알 수 있다. cat a2 a1 할 경우 순서가 바뀐채 함께 출력될 것이다.

 

 

 

 

 

 

 

 

 

cat a1 a2 > a3 를 하면 a1 과 a2 두 파일의 내용을 합해서 a3 에 생성된다.

 

 

 

+ )

cat a3 >> a2 를 하면 a2 파일의 내용 밑에 a3 파일의 내용을 덧붙인다.

 

 

 

< cat 과 리다이렉션 >

리다이렉션은 입출력의 방향을 바꾸는 역할을 한다. 기본적으로 아래와 같이 4가지 기호로 되어있다.

 

> : 출력전환(표준 출력인 모니터에서 파일이나 기타 장치로 전환)

>> : 특수 출력(보통 파일로 저장할 때 파일의 뒷부분에 추가되어 덧붙여짐)

< : 입력 전환(표준 입력인 키보드에서 파일이나 기타 장치로 전환)

<< : 특수 입력(제시된 문자열이 입력될 때까지 대기했다가 한 번에 표준 출력으로 보낸다.)

 

사용 예]

cat > a.txt

-> 표준 입력(키보드)로 입력 받아서 표준 출력(화면)으로 출력하지 않고 a.txt 라는 파일에 출력(저장)

cat < a.txt

-> a.txt 라는 파일로부터 입력 받아 표준 출력(화면)에 보여준다.

 

cat > a7 을 하면 파일의 내용을 작성할 수 있고 a7의 파일이 생성된다.

 

 

 

 

 

 

 

 

 

> 를 사용하면 a5에 생성이 되고 거기에 또다시 > 를 해주면 파일의 내용이 덮어씌우게 된다.

뒤에 hostname을 덮붙이고 싶다면 hostname >> a5 를 하면 된다.

 

 

 

 

 

 

 

 

tac

 

 

cat 을 뒤집으면 tac 가 되듯이 tac 명령을 하면 cat 의 파일의 내용을 뒤집어서 출력해준다. 단, 저장은 안되므로 저장(생성)이 하고 싶다면 tac a5 > a6 명령을 하면 된다.

 

 

 

 

 

 

 

 

cat 명령만 내리면 어떻게 될까?

표준 입력으로 받는 값을 표준 출력으로 이어주는 명령이라고 했다. 따라서 aa를 쓰면 바로 aa가 출력됨을 볼 수 있다. 다 작성하면 [CTRL] + [D] 를 누르면 된다.

cat - 와 같은 명령이다.