반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘은 리눅스에서 파일을 합치는 방법을 좀 알아 보도록 하겠습니다 

[리눅스/Linux] 파일 복사(Copy File) cp 명령어(Command) https://talkit.tistory.com/668

리눅스/Linux cat 간단한 텍스트 파일 보기 Simple Text File Viewer https://talkit.tistory.com/675

우선 파일을 합치기 위해서 몇개의 파일을 만들도록 하겠습니다. 

echo "안녕하세요 1" > hello1.txt
echo "안녕하세요 2" > hello2.txt
echo "안녕하세요 3" > hello3.txt
echo "노랑색 1" > yellow1.txt
echo "노랑색 2" > yellow2.txt
echo "노랑색 3" > yellow3.txt

리눅스에 접속하셔서 위 명령어를 입력해 주십시오.

한줄 한줄 해도 됩니다만 ^^

전체를 복사해서 붙여 넣으시면 됩니다. ^^

Putty를 사용하신다면, 복사하시고 <Shift> + <Insert> 를 누르시면 붙여 넣어 집니다. 

마우스로 오른쪽 클릭을 한번 하셔도 붙여 넣어 집니다. ^^

ubuntu@instance:~$ echo "안녕하세요 1" > hello1.txt
echo "안녕하세요 2" > hello2.txt
echo "안녕하세요 3" > hello3.txt
echo "노랑색 1" > yellow1.txt
echo "노랑색 2" > yellow2.txt
echo "노랑색 3" > yellow3.txt
ubuntu@instance:~$ ls -al
total 72
drwxr-x--- 4 ubuntu ubuntu 4096 Dec 24 11:16 .
drwxr-xr-x 4 root   root   4096 Dec 19 13:19 ..
-rw-r--r-- 1 ubuntu ubuntu  220 Jan  6  2022 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 Jan  6  2022 .bashrc
drwx------ 2 ubuntu ubuntu 4096 Dec 19 14:28 .cache
-rw------- 1 ubuntu ubuntu   20 Dec 24 11:13 .lesshst
-rw-r--r-- 1 ubuntu ubuntu  807 Jan  6  2022 .profile
drwx------ 2 ubuntu ubuntu 4096 Dec 19 13:19 .ssh
-rw------- 1 ubuntu ubuntu 1955 Dec 24 01:13 .viminfo
-rw-rw-r-- 1 ubuntu ubuntu   18 Dec 24 11:16 hello1.txt
-rw-rw-r-- 1 ubuntu ubuntu   18 Dec 24 11:16 hello2.txt
-rw-rw-r-- 1 ubuntu ubuntu   18 Dec 24 11:16 hello3.txt
-rw-rw-r-- 1 ubuntu ubuntu 1099 Dec 24 01:06 test.txt
-rw-rw-r-- 1 ubuntu ubuntu 2006 Dec 24 01:13 test2.txt
-rw-rw-r-- 1 ubuntu ubuntu 2006 Dec 24 01:13 text.txt
-rw-rw-r-- 1 ubuntu ubuntu   12 Dec 24 11:16 yellow1.txt
-rw-rw-r-- 1 ubuntu ubuntu   12 Dec 24 11:16 yellow2.txt
-rw-rw-r-- 1 ubuntu ubuntu   12 Dec 24 11:16 yellow3.txt

위와 같은 결과가 나올껍니다. 

실제로 hello1 파일과 yellow1 파일들이 생겼습니다.

그러면 저 친구들은 표준 출력을 해보십시오. ^^

더보기

cat hello1.txt
cat hello2.txt
cat hello3.txt
cat yellow1.txt
cat yellow2.txt
cat yellow3.txt

실제로 해보시면 아래와 같이 나옵니다. ^^

한줄 한줄 하셨으면 한줄씩 출력 될껍니다. 

더보기

cat hello2.txt
cat hello3.txt
cat yellow1.txt
cat yellow2.txt
cat yellow3.txt
안녕하세요 1
안녕하세요 2
안녕하세요 3
노랑색 1
노랑색 2
노랑색 3

자 그런데 다음 명령어도 가능 합니다. 

더보기

cat hello*.txt yellow*.txt

위와 같이도 가능 합니다. 

더보기

cat hello*.txt yellow*.txt
안녕하세요 1
안녕하세요 2
안녕하세요 3
노랑색 1
노랑색 2
노랑색 3

그러면 이제 이글의 제목인 파일 합치기에 대해서 알아 보겠습니다. 

먼저 방법은 cat을 이용하면 아래와 같습니다. 

시나리오는 hello로 시작하는 텍스트 파일을 hello.txt 파일로 만드는 것입니다. 

cat hello*.txt > hello.txt
cat hello1.txt hello2.txt hello3.txt > hello.txt

위 두가지 명령어로 가능 합니다. 

저는 위의 명령어를 주로 사용하기 때문에 한번 해보겠습니다. 맨 마지막에 cat로 한번 hello.txt를 출력도 해보겠습니다. 

더보기

ubuntu@instance-:~$ cat hello*.txt > hello.txt
ubuntu@instance-:~$ cat hello.txt
안녕하세요 1
안녕하세요 2
안녕하세요 3

제가 실행한것을 보면 세개의 hello 파일들이 합쳐져서 하나의 파일로 만들어 졌습니다. 

자 이제 여러분들도 해보십시오. 동일하게 yellow 로 시작하는 파일들을 합쳐 보십시오.

더보기

cat yellow*.txt > yellow.txt

cat yellow.txt

위와 같이 실행하면 합쳐 집니다. 

오늘은 cat을 이용해서 파일을 합치는 방법에 대해서 알아 보았습니다. 다음에는 cat과 grep을 이용해서 필터링 하는 방법을 한버 써 보도록 하겠습니다. 

리눅스에서 cat의 활용도가 높네요 ^^

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

오늘은 리눅스 명령어 중에 cat에 대해서 알아 보도록 하겠습니다. 

NAME
       cat - concatenate files and print on the standard output

SYNOPSIS
       cat [OPTION]... [FILE]...

DESCRIPTION
       Concatenate FILE(s) to standard output.

       With no FILE, or when FILE is -, read standard input.

       -A, --show-all
              equivalent to -vET

       -b, --number-nonblank
              number nonempty output lines, overrides -n

       -e     equivalent to -vE

       -E, --show-ends
              display $ at end of each line

       -n, --number
              number all output lines

       -s, --squeeze-blank
              suppress repeated empty output lines

       -t     equivalent to -vT

       -T, --show-tabs
              display TAB characters as ^I

       -u     (ignored)

       -v, --show-nonprinting
              use ^ and M- notation, except for LFD and TAB

       --help display this help and exit

       --version
              output version information and exit

EXAMPLES
       cat f - g
              Output f's contents, then standard input, then g's contents.

       cat    Copy standard input to standard output.

리눅스 man 페이지 즉 리눅스가 기본 적으로 제공하는 매뉴얼에 위와 같이 나와 있습니다. 

저게 영어로 직역하면 파일을 합처 주거나 표준출력으로 파일을 출력해준다라고 되어 있습니다. 

제가 알려 드리려고 하는 것은 파일을 출력해준다인데 T.T 파일을 합친다는 한번 다시 알아 봐야겠습니다. 방법과 개념은 알 것 같습니다. 

리눅스에서는 파일을 보려면, X-Windows에서는 gedit, Shell 상에서는 vim, pico, emacs 등 다양한 편집기가 있습니다. 하지만, 정말 간단하게 그냥 text 파일의 내용을 보고 싶을 때는 cat을 사용하시면 됩니다. 

일반적으로 vim(이하 vi)를 사용하는데 vi를 이용해서 제가 작성해둔 man 페이지를 열어 보겟씁니다. 

vi test.txt

위와 같이 하시면 됩니다. 

제일 처음에 보여 드린 vi는 빈 내용이엇찌만, 지금은 cat의 man 페이지를 복사해 두었습니다. 

저기서 빠져 나오시려면 :q 를 하시면 됩니다. ^^

저는 보여 드리려고 한거여서 따라하신 분은 vi test.txt 후에 :q vi에서 밖으로 나오게 되어 있습니다. 

그럼 다시 cat으로 돌아 오겠습니다. 

저 텍스트파일을 cat으로 열어 보겠습니다. 

cat test.txt

위와 같이 여시면 됩니다. 

vi로 보신 내용이 그대로 나옵니다. 

이제는 리눅스에서 보시고자하는 파일을 간단하게 보실때 cat을 이용하시면 되겠습니다. 

그런데 여기 조금 다른 문제가 생깁니다. 

문서가 길면?

1. PuTTY나, 다른 SSH 클라이언트의 Scroll 기능을 이용하시면됩니다. ^^

2. 리눅스의 more 나 less 라는 명령어를 이용하시면 됩니다. 

1 번은 그냥 하시면 되니 넘어가서 more하고 less를 살펴 보겠습니다.

앞으로 또 설명할 내용이지만, test2.txt를 한번 만들어 보겠습니다.  조금 긴 문서로요 ^^

man cat > test2.txt

위와 같이 하시면 > 가 가르키는 test2.txt에 man 페이지의 내용을 출력해 줍니다. 

그럼 다시 저걸 보도록 하겠습니다. cat으로요.

cat test2.txt

화면을 일부러 제가 줄이기는 했지만, 위 그림과 같이 한페이지에 안나오고 지나갑니다. 

이번에는 more라늠 열령어를 이용해서 같이 사용해보겠습니다. 

리눅스에서는 | 문자를 가지고 조합을 합니다. 

cat test2.txt | more

위 명령어를 내려 보겠습니다. 

첫페이지네만 보여주고 More라는 프롬프트를 띄워 줍니다. 

저기서 스페이스 또는 엔터를 누르면 다음 페이지로 넘어 갑니다. 

	cat test2.txt | less

less 를 조합해서 명령어를 내리면, : 프롬프트가 나옵니다. 이때 화살표를 아래위로 움직여 보십시오. more가 페이지단위로 움직이고 한 방향으로 출력해주는 반면에 , less는 한줄씩 움직이고, 앞/뒤 양 방향으로 움직입니다. ^^

오늘은 cat의 간단한 파일 보여주기에 대해서 말씀 드렸습니다. 다음 글에서는 cat 파일 합치기 기능을 한번 저도 알아보겠습니다. ^^

감사합니다. 

반응형

+ Recent posts