Linux cat 및 tac 명령을 사용하는 방법

0
62
Linux 데스크탑에서 터미널 창의 기술
Fatmawati Achmad Zaenuri / Shutterstock.com

그만큼 cattac 명령은 텍스트 파일의 내용을 표시하지만 눈에 띄는 것보다 많은 것이 있습니다. 조금 더 깊이 들어가서 생산적인 Linux 명령 행 요령을 배우십시오.

이것들은 두 개의 간단한 작은 명령으로, 종종 실제 사용하기에는 너무 간단합니다. 그러나 사용 가능한 다른 방법을 알고 나면 파일 작업과 관련하여 무거운 물건을 공정하게 공유 할 수 있음을 알 수 있습니다.

고양이 명령

cat 텍스트 파일의 내용을 검사하고 파일의 일부를 결합하여 더 큰 파일을 만드는 데 사용됩니다.

전화 접속 모뎀 시대로 돌아가서 한 번에 이진 파일은 여러 개의 작은 파일로 분할되어 다운로드가 더 쉬워졌습니다. 하나의 큰 파일을 다운로드하는 대신 작은 파일을 각각 철회했습니다. 단일 파일을 올바르게 다운로드하지 못하면 해당 파일을 다시 검색하면됩니다.

물론 작은 파일 모음을 다시 단일 작업 이진 파일로 재구성하는 방법이 필요했습니다. 이 과정을 연결이라고합니다. 그리고 그 곳 cat 이름이 나오는 곳으로 왔습니다.

광대역 및 광섬유 연결로 인해 거친 전화 접속 소리와 같이 특정 기능이 사라져야합니다. cat 오늘 할? 실제로 꽤 많이.

텍스트 파일 표시

가지고 cat 텍스트 파일의 내용을 터미널 창에 나열하려면 다음 명령을 사용하십시오.

파일이 텍스트 파일인지 확인하십시오. 이진 파일의 내용을 터미널 창에 나열하려고하면 결과를 예측할 수 없습니다. 터미널 세션이 잠기거나 더 나빠질 수 있습니다.

cat poem1.txt

터미널 창에서 cat poem1.txt

poem1.txt 파일의 내용이 터미널 창에 표시됩니다.

터미널 창에서 poem1.txt의 내용

그것은 유명한시의 절반에 불과합니다. 나머지는 어디에 있습니까? 여기 poem2.txt라는 다른 파일이 있습니다. 우리는 만들 수 있습니다 cat 하나의 명령으로 여러 파일의 내용을 나열하십시오. 명령 행에 파일을 순서대로 나열하기 만하면됩니다.

cat poem1.txt poem2.txt

cat poem1.txt poem2.txt는 터미널 창에 있습니다.

그것은 더 좋아 보인다; 우리는 지금시 전체를 가지고 있습니다.

터미널 창에서 poem1.txt 및 poem2.txt의 내용

적은 고양이로

이시는 모두 있지만 처음 몇 구절을 읽기에는 너무 빨리 창을 지나쳐 갔다. 우리는 출력을 파이프로 만들 수 있습니다 cat 으로 less 우리 자신의 속도로 텍스트를 아래로 스크롤하십시오.

cat poem1.txt poem2.txt | less

고양이 poem1.txt poem2.txt | 터미널 창에서 덜

텍스트가 두 개의 별도 텍스트 파일에 들어 있어도 한 스트림에서 텍스트를 앞뒤로 이동할 수 있습니다.

poem1.txt 및 poem2.txt의 내용이 터미널 창에 적습니다.

파일에서 줄 번호 매기기

파일에 표시된 줄 번호를 cat으로 지정할 수 있습니다. 이를 위해 우리는 -n (숫자) 옵션.

cat -n poem1.txt

터미널 창에서 cat -n poem1.txt

줄은 터미널 창에 표시 될 때 번호가 매겨집니다.

터미널 창에 번호가 매겨진 poem1.txt의 내용

빈 줄에 번호를 매기 지 마십시오

우리는 행 번호를 cat그러나 구절 사이의 빈 줄도 세어지고 있습니다. 텍스트 줄에 번호를 매기지만 빈 줄을 무시하려면 -b (공백 없음) 옵션.

cat -b poem1.txt

터미널 창에서 cat -b poem1.txt

이제 텍스트 줄에 번호가 매겨지고 공백 줄은 건너 뜁니다.

빈 줄을 건너 뛰는 번호가 매겨진 줄들;

빈 줄을 여러 개 표시하지 않음

파일에 연속 된 빈 줄이있는 섹션이 있으면 cat 하나의 빈 줄을 제외하고 모두 무시합니다. 이 파일을보십시오.

터미널 창에 연속적인 빈 줄이있는 파일 내용

다음 명령은 cat 빈 줄마다 빈 줄을 하나만 표시합니다. 이를 달성하기 위해 필요한 옵션은 -s (압착 공백) 옵션.

cat -s poem1.txt

터미널 창에서 cat -b poem1.txt

이것은 파일 내용에 영향을 미치지 않습니다. 그냥 길을 바꾼다 cat 파일을 표시합니다.

터미널 창에서 여러 개의 빈 줄이 무시 됨

디스플레이 탭

공백이 탭인지 공백인지를 알고 싶다면 다음을 사용하여 찾을 수 있습니다. -T (표시 탭) 옵션.

cat -T poem1.txt

터미널 창에서 cat -T poem1.txt

탭은“^ I”문자로 표시됩니다.

터미널 창에 탭이 표시된 poem1.txt의 내용

줄의 끝 표시

다음을 사용하여 후행 공백을 확인할 수 있습니다. -E (쇼 엔드) 옵션.

cat -E poem1.txt

터미널 창에서 cat -T poem1.txt

줄 끝은“$”문자로 표시됩니다.

터미널 창에 줄 끝이 표시된 poem1.txt의 내용

파일 연결

시를 두 개의 파일로 각각 반씩 저장하는 것은 이치에 맞지 않습니다. 함께 모여시 전체를 담은 새 파일을 만들어 봅시다.

cat poem1.txt poem2.txt > jabberwocky.txt

cat poem1.txt poem2.txt> 터미널 창에서 jabberwocky.txt

사용합시다 cat 새 파일을 확인하려면 :

cat jabberwocky.txt

터미널 창에서 cat jabberwocky.txt

새 파일에는 다른 두 파일의 내용이 포함되어 있습니다.

터미널 창에서 jabberwocky.tx의 내용

기존 파일에 텍스트 추가

더 낫지 만 실제로는시 전체가 아닙니다. 마지막 구절이 없습니다. Jabberwocky의 마지막 구절은 첫 구절과 같습니다.

파일에 첫 번째 구절이 있다면 이것을 jabberwocky.txt 파일의 맨 아래에 추가하면 완전한시를 얻게됩니다.

이 다음 명령에서는 >>, 뿐만 아니라 >. 우리가 하나를 사용하면 >덮어 쓰기 jabberwocky.txt. 우리는 그렇게하고 싶지 않습니다. 우리는하고 싶다 덧붙이다 그것의 하단에 텍스트.

cat first_verse.txt >> jabberwocky.txt

터미널 창에서 cat first_verse.txt >> jabberwocky.txt

jabberwocky.txt 파일의 내용을 확인하십시오 :

cat jabberwocky.txt

터미널 창에서 cat jabberwocky.txt

그리고 마지막으로,시의 모든 부분이 함께 있습니다.

터미널 창에서 jabberwocky.txt의 내용

stdin 리디렉션

키보드를 사용하여 입력을 파일로 리디렉션 할 수 있습니다 cat. 입력 한 모든 내용은 Ctrl + D를 누를 ​​때까지 파일로 리디렉션됩니다. 우리는 하나를 사용합니다 > 파일을 만들거나 파일이 있으면 덮어 씁니다.

cat > my_poem.txt

터미널 창에서 cat> my_poem.txt

명령을 실행하자마자 입력을 시작할 수 있습니다. 완료되면 Ctrl + D를 누르십시오. 그런 다음 새 파일의 내용을 확인할 수 있습니다.

cat my-poem.txt

터미널 창에서 저급 doggerel

멀리 떨어진 터빈과 같은 소리는 아마도 그의 무덤에서 고속으로 회전하는 Lewis Carroll 일 것입니다.

tac 명령

tac 비슷하다 cat파일 내용을 역순으로 나열합니다.

보자 :

tac my_poem.txt

터미널 창에서 tac my_poem.txt

그리고 파일은 터미널 창에 역순으로 나열됩니다. 이 경우 문학적 장점에는 영향을 미치지 않습니다.

터미널 창에 my_poem.txt가 역순으로 나열 됨

stdin과 함께 tac 사용

사용 tac 파일 이름이 없으면 키보드의 입력에서 작동합니다. Ctrl + D를 누르면 입력 단계가 중지되고 tac은 입력 한 내용을 역순으로 나열합니다.

tac

터미널 창에서 stdin으로 작업하는 tac

Ctrl + D를 누르면 입력이 반대로되어 터미널 창에 나열됩니다.

터미널 창에서 stdin을 사용하여 tac에서 출력

로그 파일과 함께 tac 사용

저급 팔러 트릭 외에도 tac 유용한 것이 있습니까? 예, 그럴 수 있습니다. 많은 로그 파일이 파일 맨 아래에 최신 항목을 추가합니다. 사용 tac (그리고 직관적으로 head) 마지막 입력을 터미널 창에 띄울 수 있습니다.

우리는 사용 tac syslog 파일을 역순으로 나열하고 head. 말함으로써 head 첫 번째 줄만 인쇄합니다. tac 파일의 마지막 줄입니다) syslog 파일의 최신 항목을 봅니다.

tac /var/log/syslog | head -1

tac / var / log / syslog | 터미널 창에서 head -1

head syslog 파일에서 최신 항목을 인쇄 한 다음 종료합니다.

참고 head 요청한대로 한 줄만 인쇄하지만 줄이 너무 길어서 두 번 줄 바꿈됩니다. 이것이 터미널 창에서 3 줄의 출력으로 보이는 이유입니다.

터미널 창의 syslog에서 마지막 항목

텍스트 레코드와 함께 tac 사용

마지막 트릭 tac 소매가 아름다움입니다.

보통, tac 텍스트 파일을 아래에서 위로 한 줄씩 진행하여 텍스트 파일에서 작동합니다. 줄은 개행 문자로 끝나는 일련의 문자입니다. 그러나 우리는 말할 수 있습니다 tac 다른 구분자와 함께 작동합니다. 이를 통해 텍스트 파일 내의 데이터 “청크”를 데이터 레코드로 취급 할 수 있습니다.

검토하거나 분석해야하는 일부 프로그램의 로그 파일이 있다고 가정하겠습니다. 형식을 살펴 보겠습니다 less.

less logfile.dat

터미널 창에 적은 로그 파일

보시다시피, 파일에 반복되는 형식이 있습니다. 세 줄의 16 진 값 시퀀스가 ​​있습니다. 세 줄의 16 진수로 구성된 각 줄에는“= SEQ”로 시작하는 레이블 줄이 있고 그 뒤에 일련의 숫자가옵니다.

터미널 창에서 로그 파일의 상단

파일 맨 아래로 스크롤하면 이러한 레코드가 많이 있음을 알 수 있습니다. 마지막 번호는 865입니다.

터미널 창에서 로그 파일의 맨 아래

어떤 이유로 든이 파일을 역순으로 데이터 레코드별로 데이터 레코드를 처리해야한다고 가정 해 봅시다. 각 데이터 레코드에서 3 개의 16 진 행의 행 순서는 유지되어야합니다.

파일의 마지막 3 줄은 16 진수 93, E7 및 B8 순서로 시작합니다.

사용합시다 tac 파일을 되돌리려면 파일이 너무 길어서 less.

tac logfile.dat | less

tac logfile.dat | 터미널 창에서 덜

이는 파일을 되돌 리지만 원하는 결과가 아닙니다. 파일을 뒤집기를 원하지만 각 데이터 레코드의 행은 원래 순서대로 있어야합니다.

터미널 창에서 적은 역 로그 파일

파일의 마지막 세 줄은 16 진수 93, E7 및 B8 순서로 시작한다는 것을 이전에 기록했습니다. 해당 줄의 순서가 바뀌 었습니다. 또한“= SEQ”줄은 이제 이하 세 개의 16 진 라인의 각 세트.

tac 구조에.

tac -b -r -s ^=SEQ.+(0-9)+*$ logfile.dat | less

tac -b -r -s ^ = SEQ. + (0-9) + * $ logfile.dat | 터미널 창에서 덜

세분화합시다.

그만큼 -s (분리기) 옵션이 알려줍니다 tac 레코드 간의 구분 기호로 사용하려는 항목 그것은 말한다 tac 일반적인 개행 문자를 사용하지 말고 대신 구분자를 사용하십시오.

그만큼 -r (정규식) 옵션이 알려줍니다 tac 구분자 문자열을 정규식으로 취급합니다.

그만큼 -b (이전) 옵션 원인 tac 구분 기호를 나열하려면 전에 각 레코드를 대신하는 대신 각 레코드 (기본 구분 기호의 줄 바꿈 문자)입니다.

그만큼 -s (구분자) 문자열 ^=SEQ.+(0-9)+*$ 다음과 같이 해독됩니다.

그만큼 ^ 문자는 줄의 시작을 나타냅니다. 그 다음에 =SEQ.+(0-9)+*$. 이것은 지시합니다 tac “= SEQ”의 각 발생을 찾습니다. 줄의 시작 부분에 일련의 숫자가옵니다. (0-9)) 다음에 다른 문자 세트가 표시됩니다 ( *$).

우리는 전체를 많이 배관하고 있습니다 less평소와 같이.

올바르게 구성된 데이터 레코드가있는 역 로그 파일

우리의 파일은 이제 각“= SEQ”라벨 줄과 함께 역순으로 제시됩니다. 전에 세 줄의 16 진 데이터입니다. 16 진 값의 세 줄은 기발한 각 데이터 레코드 내에서 주문하십시오.

간단히 확인할 수 있습니다. 16 진수의 첫 세 줄 (파일이 바뀌기 전에 마지막 세 줄)의 첫 번째 값은 이전에 기록한 값 93, E7 및 B8의 순서대로 일치합니다.

그것은 터미널 윈도우 1 라이너에 대한 트릭입니다.

모든 것이 목적이있다

Linux 세계에서 가장 간단한 것처럼 보이는 명령과 유틸리티조차 놀라 울 정도로 강력한 속성을 가질 수 있습니다.

한 가지 일을 잘 수행하고 다른 유틸리티와 쉽게 상호 작용하는 간단한 유틸리티의 디자인 철학은 다음과 같은 이상한 작은 명령을 일으켰습니다. tac. 언뜻보기에는 조금 이상한 것 같습니다. 그러나 당신이 수면 아래를 들여다 보면, 당신이 유리하게 활용할 수있는 예상치 못한 힘이 있습니다.

또는 다른 철학에 따르면, “뿔이 없어 뱀을 멸시하지 마십시오. 누가 뱀이 용이되지 않겠다고 말해야합니까?”

LEAVE A REPLY

Please enter your comment!
Please enter your name here