본문 바로가기

Linux

리눅스 cat << EOF (cat 을 이용해 여러 줄을 파일로 생성하기)

환경 및 선수조건

  • Linux
  • Bash shell(/bin/bash)

cat 명령어

  • cat: 파일들을 인자로 받아서 해당 파일들을 연결해 표준출력으로 출력합니다.
  • 간단히 말해 들어오는 파일명들의 파일 내용을 쉘 화면에 출력해주는 명령어입니다.
  • The name is derived from its function to (con)catenate files

cat을 이용해 여러 줄 입력하기

  • cat 다음에 <<를 쓰고 원하는 표시자를 씁니다. 아래의 경우에는 EOF를 사용하였는데 다른 단어를 사용해도 됩니다. 단, 처음에 사용한 단어가 끝에도 같아야 합니다. 여기에 EOF를 사용했기 때문에 마지막에 입력을 끝내려면 똑같이 EOF를 입력하면됩니다.
  • 이러한 부분을 Here-Document라고 하는데 자세한 내용은 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_04에 나와있습니다.

cat을 이용해 여러 줄을 파일로 생성하기

  • Here-Document와 Redirection의 응용입니다.
  • stdin을 cat 명령어로 받고 Redirection를 통해서 파일에 stdout의 내용을 출력합니다. 어려우면 그냥 아래처럼 사용하셔도 무방합니다!!
  • 개행문자를 포함해서 파일에 쓰고 싶을 때 아래처럼 사용합니다.
  • Redirection에 관해서는 Redirect와 Pipe의 차이를 참고하세요.

 

 

  • Bash 쉘에서 HEREDOC 구문의 전형적인 형식
  • 직접 입력한 텍스트를 파일에 저장할 때 주로 사용한다.
  • 시작 및 종료를 알리는 키워드로는 흔히 EOF(또는 EOT)를 쓰는데, 임의로 정하는 것이므로 다른 것(예: AAA, HELLO)도 가능하다.
user01@localhost:~$ cat <<EOF > file1.txt
> hello
> world
> EOF
user01@localhost:~$ cat file1.txt
hello
world

EOF는 End of File, EOT는 End of Text이라는 의미이다.

 

user01@localhost:~$ cat > file2.txt <<ZZZ
> hello
> world
> ZZZ
user01@localhost:~$ cat file2.txt 
hello
world

 

 

추가로 touch 명령어

는 파일의 생성시간을 현재로 만들기 위한 명령어

즉, 2020-01-01 11:22 에 생성된 파일 file.txt 를 

touch file.txt  하면 2020-08-29 현재시간으로 바꾸어준다.

 

이와 같은 특성을 활용하여, 없는 파일의 경우 touch 를 사용하면 새 파일이 0 byte 크기로 새로 만들어지는 것

 

touch, cat , vi 를 가장 많이 사용한다

'Linux' 카테고리의 다른 글

CentOS7 File Management : 압축  (0) 2022.08.29
리눅스 수업  (0) 2022.08.12
[08-10 수업] Linux 일별 수업 내용  (0) 2022.08.11
CentOS 네트워크 설정  (0) 2022.08.11