명령 행에 텍스트 파일의 내용을 표시하려면 어떻게해야합니까?


131

명령 행에 텍스트 파일의 내용을 표시하고 싶습니다. 파일은 5-6 자만 포함합니다. 이 작업을 수행하는 쉬운 방법이 있습니까?

답변:


194

사용 cat

파일이 짧기 때문에를 사용할 수 있습니다 cat.

cat filename

사용 less

더 긴 파일의 내용을보아야하는 경우와 같은 호출기를 사용할 수 있습니다 less.

less filename

작은 파일에서 호출 될 때 less와 같이 cat작동하고 -Fand 및 -X플래그를 전달하여 정상적으로 작동 할 수 있습니다 .

less -FX filename

에 대한 별칭이 less -FX있습니다. 당신은 그렇게 스스로를 만들 수 있습니다 :

alias aliasname='less -FX'

쉘 구성에 별명을 추가하면 영원히 사용할 수 있습니다.

사용 od

파일에 이상하거나 인쇄 할 수없는 문자가 포함되어 있으면 문자 od를 검사하는 데 사용할 수 있습니다 . 예를 들어

$ cat file
(ÐZ4 ?o=÷jï
$ od -c test
0000000 202 233   ( 320   K   j 357 024   J 017   h   Z   4 240   ?   o
0000020   = 367  \n
0000023

+1도 sed -n l file유용 할 수 있습니다.
enzotib

1
않습니다 less같은 다른 페이저 프로그램을 통해 뚜렷한 장점을 가지고 pg, 아니면 그냥 개인적인 취향에 졸이다 무엇입니까?
Sam Weinberg

@SamWeinberg : less보다 많은 기능이 pg있습니다. less(1)pg(1)맨 페이지를 살펴보십시오 . 다른 호출기도 있습니다. unix.stackexchange.com/questions/81129/…보십시오 . less아마 가장 널리 사용되는 호출기이지만 사용하는 것이 개인 취향에 달려 있습니다.

잊지 마세요 moremost!
Rudolf Olah

29

모두가 사용하더라도 cat filename표준 출력 첫번째 목적에 파일의 텍스트를 인쇄하는 사기꾼이다 고양이 enating. 고양이의 맨 페이지에서 :

cat-파일을 연결하고 표준 출력에 인쇄

이제 cat은 파일을 인쇄하는 데는 좋지만 다른 방법이 있습니다.

  echo "$(<filename)"
or
  printf "%s" "$(<filename)"

( )이 경우의 콘텐츠 표현의 값을 반환 파일명 그때까지 확장 $echo또는 printf.

최신 정보:

< filename

이것은 정확히 당신이 원하는 것을하고 기억하기 쉽습니다.

다음은 메뉴에서 파일을 선택한 다음 인쇄 할 수있는 예제입니다.

#!/bin/bash

select fname in *;
do
# Don't forget the "" around the second part, else newlines won't be printed
  printf "%s" "$(<$fname)"
  break
done

더 읽어보기 :
BashPitfalls-cat 파일 | sed s / foo / bar /> 파일
Bash Reference-리디렉션


귀하의 업데이트 : " < filename정확히 원하는 것입니다 ..."는 오해의 소지가 있습니다. 전반적으로 이것은 대안에 대한 흥미로운 토론이지만, 나는 cat더 간단 하다고 생각 합니다.
X Tian

베어 < filename는 파일의 내용을 표시하지 않지만 표시합니다 cat filename.
jarno 2016 년

당신도 사용할 수 있습니다 tee < filename.
jarno

2
echo "$(<filename)"강타에 +1 . 여기에 충분하지 않습니다.
Yokai

echo와 함께 Linux Internal Command를 사용하는 것이 좋습니다 "$(<filename)". 감사합니다 ...
Reza Harasani

9

다음 명령을 사용하여 텍스트 파일의 내용을 표시 할 수 있습니다.

고양이 파일 이름 

에 대한 자세한 내용을 보려면를 cat실행하십시오 man cat.

9

유닉스에서 텍스트 파일을 처리하는 도구는 일상적인 기본 명령입니다.

유닉스와 리눅스에서 파일의 전체 내용을 인쇄

cat filename.txt

또는

more filename.txt

또는

less filename.txt

마지막 몇 줄

tail filename.txt

처음 몇 줄

head filename.txt

4

하나의 옵션은 more

예 : more file.txt

그러나에 의해 추가 된 모든 기능이 없습니다 less.
간단한 예로 출력에서 ​​위로 스크롤 할 수 없습니다. 일반적으로 less에 의해 대체되었습니다.

더 적은


3

나는 $ less "your file here"매우 간단하고 내장 된 대화 형 grep명령을 제공하며 화살표 키로 스크롤 할 수있는 사용하기 쉬운 인터페이스를 제공하기 때문에 항상을 사용 합니다.

(거의 모든 * nix 시스템에도 포함되어 있습니다)


less의 과잉 버전이며 more( man less와 비교 man more) 나에게는 두 가지 성가신 기능이 있습니다 .1) 대체 화면 버퍼로 전환하고, 덜 종료하면 방금보고있는 파일이 사라집니다 .2) EOF에서 명시 적으로 입력해야합니다 q(나는 이것을위한 옵션이 있다는 것을 안다). 새로운 환경에서 첫 번째 조치 중 하나는 내 export PAGER=/bin/more프로파일을 설정 하고 항상 사용 more하는 것입니다.
ott--

@ ott-- : 1) -X깃발을 시험해보십시오 . 2) -E깃발을 시험해보십시오 . lessmore에뮬레이션 모드를. LESS_IS_MORE환경 변수 를 설정하여 활성화 할 수 있습니다 . more에뮬레이션 모드 에서 위로 스크롤 할 수 있습니다 .


일반적으로, 나는 그것이 less너무 복잡 하다는 데 동의합니다 . 외부 명령을 실행할 수있는 기능은 복잡한 문제의 완벽한 예입니다.

@EvanTeitelman 저는 항상 grep 기능이 매우 유용하다는 것을 알았습니다. @ ott-- 에뮬레이션 more과 많은 추가 기능이 있기 때문에 작업이 잘 수행됩니다.
SG60

2

큰 파일이고 특정 부분을 검색하려는 경우 사용할 수 있습니다

 cat filename | grep text_to_search -ni 

또한 대화식 Vim 편집기 (또는 Vim이없는 경우 vi 편집기)를 사용할 수 있습니다.

 vim filename
Or
 vi filename

Vim / vi는 훌륭한 편집기로, "Normal Mode (일반 모드)"또는 -R 옵션을 사용하여 리더로 사용할 수 있으며 파일을 탐색하는 데 도움이되는 많은 기능이 있습니다.


에 대한 짧은이 vim -R있다 view. 그러나 xargs 및 vi-“입력은 터미널에서 온 것이 아닙니다” 에서 설명한 것처럼 리디렉션을 좋아하지 않습니다 .
manatwork

머리 위로 @manatwork 감사합니다! 나는 최근에 Vim을 사용하기 시작했으며 여러 기능 때문에 그것을 좋아합니다. 리디렉션과 관련하여 알림을 잊어 버렸습니다. 현재로서는 GUI 인터페이스없이 ssh를 사용하는 원격 VM에서 작업 중이므로 다른 GUI 편집기가 작동하지 않을 때 Vim이 많이 사용되므로 Vim을 강조했습니다.
걱정하지 마십시오

1

cat 명령을 사용하여 파일 이름의 내용을 표시하십시오. 고양이 파일 이름

vim 명령을 사용하여 파일을 편집하십시오. vim 파일 이름

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.