수색…


통사론

  • 고양이 [옵션] ... [FILE] ...

매개 변수

선택권 세부
-엔 행 번호 인쇄
-V LFD 및 TAB을 제외한 ^ 및 M- 표기법을 사용하여 인쇄되지 않는 문자 표시
-티 Tab 문자를 ^ I로 표시하십시오.
-이자형 줄 바꿈 (LF) 문자를 $로 표시
-이자형 -vE와 동일
-비 비어 있지 않은 출력 행 번호를 재정의합니다. -n
-에이 -vET와 동등하다.
-에스 반복되는 빈 출력 행을 억제합니다. s는 squeeze를 나타냅니다.

비고

cat 은 파일과 표준 입력을 모두 읽고 표준 출력에 연결할 수 있습니다.

파일의 내용 인쇄하기

cat file.txt

파일의 내용을 인쇄합니다.

파일에 ASCII 이외의 문자가 포함되어 있으면 cat -v 하여 기호를 기호로 표시 할 수 있습니다. 이것은 제어 문자가 보이지 않는 경우에 유용합니다.

cat -v unicode.txt

매우 자주, 상호 작용 사용을 위해, 당신은 같은 양방향 호출기를 사용하는 것이 더 낫다 less 또는 more 하지만. ( less 보다 훨씬 더 강력 more 사용하는 것이 좋습니다 less 보다 더 자주 more .)

less file.txt

파일의 내용을 명령의 입력으로 전달하는 것. 보통 더 나은 것으로 보이는 접근법 ( UUOC )은 리디렉션을 사용하는 것입니다.

tr A-Z a-z <file.txt   # as an alternative to cat file.txt | tr A-Z a-z

내용을 끝에서부터 역순으로 나열해야 할 경우 tac 명령을 사용할 수 있습니다.

tac file.txt

행 번호가있는 내용을 인쇄하려면 cat -n 을 사용하십시오.

cat -n file.txt

파일 내용을 완전히 모호하지 않은 바이트 단위로 표시하려면 16 진 덤프가 표준 솔루션입니다. 이는 정확한 인코딩을 모르는 경우와 같이 파일의 아주 짧은 발췌 문장에 유용합니다. 표현은 약간 od -cH 만 표준 hex 덤프 유틸리티는 od -cH . 일반적인 대체품에는 xxdhexdump 포함됩니다.

$ printf 'Hëllö wörld' | xxd
0000000: 48c3 ab6c 6cc3 b620 77c3 b672 6c64       H..ll.. w..rld

출력이있는 행 번호 표시

각 행 앞에 행 x 호를 인쇄하려면 --number 플래그를 사용하십시오. 또는 -n 이 동일한 작업을 수행합니다.

$ cat --number file

 1  line 1
 2  line 2
 3
 4  line 4
 5  line 5

행을 세는 경우 빈 행을 건너 뛰려면 --number-nonblank 또는 단순히 -b .

$ cat -b file

 1  line 1
 2  line 2

 3  line 4
 4  line 5

표준 입력에서 읽기

cat < file.txt

출력은 cat file.txt 와 동일하지만 파일의 내용을 파일에서 직접 읽는 대신 표준 입력에서 읽습니다.

printf "first line\nSecond line\n" | cat -n 

| 전에 echo 명령을 | 두 줄을 출력합니다. cat 명령은 행 번호를 추가하기 위해 출력에 작용합니다.

파일 연결

이것은 cat 의 주된 목적입니다.

cat file1 file2 file3 > file_all

cat 은 파이프 라인의 일부로 파일을 연결하는 것과 유사하게 사용될 수 있습니다.

cat file1 file2 file3 | grep foo

파일에 쓰기

cat >file

file이라는 파일에 저장 될 터미널에 텍스트를 쓸 수있게 해줍니다.

cat >>file

파일 끝 부분에 텍스트를 추가한다는 점을 제외하고는 동일한 작업을 수행합니다.

주의 : 터미널에 텍스트 쓰기를 끝내려면 Ctrl + D누릅니다 (Linux).


here document는 파일의 내용을 명령 행이나 스크립트로 인라인하기 위해 사용될 수있다.

cat <<END >file
Hello, World.
END

<< 리디렉션 기호 다음에 나오는 토큰은 임의의 문자열로, 여기에 문서의 끝을 나타 내기 위해 줄에 (선행 공백이나 후행 공백이없는) 단독으로 발생해야합니다. 셸이 명령 대체 및 변수 보간을 수행하지 못하도록 따옴표를 추가 할 수 있습니다.

cat <<'fnord'
Nothing in `here` will be $changed
fnord

따옴표가 없으면 here 에 명령으로 실행되고 $changed 는 변수가 changed 값으로 대체되거나 정의되지 않은 경우 아무 것도 changed 되지 않습니다.

인쇄 할 수없는 문자 표시

이것은 인쇄 할 수없는 문자 또는 비 ASCII 문자가 있는지 확인하는 데 유용합니다.

당신이 웹에서 코드를 복사하여 붙여 넣은 경우 예를 들어, 당신은 같은 따옴표를 가질 수있다 대신 표준 " .

$ cat -v file.txt
$ cat -vE file.txt # Useful in detecting trailing spaces.

$ echo '”     ' | cat -vE # echo | will be replaced by actual file.
M-bM-^@M-^]     $

cat -vET 와 동일한 cat -A (모두에 대해 A)를 사용할 수도 있습니다. ^I 로 표시되는 탭 문자, 인쇄 할 수없는 문자 및 각 행의 끝이 표시됩니다.

$ echo '” `' | cat -A
M-bM-^@M-^]^I`$

gzipped 파일 연결하기

gzip 으로 압축 된 파일은 더 큰 gzip 파일로 직접 연결할 수 있습니다.

cat file1.gz file2.gz file3.gz > combined.gz

이것은 gzip 의 속성으로 입력 파일을 연결하고 결과를 gzip 하는 것보다 효율적이지 않습니다.

cat file1 file2 file3 | gzip > combined.gz

완전한 데모 :

echo 'Hello world!' > hello.txt
echo 'Howdy world!' > howdy.txt
gzip hello.txt 
gzip howdy.txt

cat hello.txt.gz howdy.txt.gz > greetings.txt.gz

gunzip greetings.txt.gz

cat greetings.txt

어느 결과

Hello world!
Howdy world!

greetings.txt.gz단일 파일 이며 단일 파일 greeting.txt 로 압축 해제됩니다. 이것을 tar -czf hello.txt howdy.txt > greetings.tar.gz 와 비교해보십시오.이 파일은 tarball 내부에서 파일을 분리 보관합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow