Linux

Linux Shell 리디렉션 (입력 및 출력 리디렉션) - 3장

빼이 2020. 10. 19. 12:00
반응형

★ Linux Shell 입력 리디렉션

입력 리디렉션은 입력 방향을 변경하는 것이며 더 이상 키보드를 명령 입력 소스로 사용하지 않고 파일을 명령 입력으로 사용합니다.


표 3 : Bash에서 지원하는 출력 리디렉션 기호

상징

 기술

 명령 <파일

 파일 파일의 내용을 명령 입력으로 사용하십시오.

 명령 << END

 표준 입력 (키보드)에서 데이터를 읽고 구분 기호 END를 충족 할 때까지 중지합니다 (구분 기호는 사용자가 정의한 임의의 문자열 일 수 있음).

 명령 <파일1> 파일2

 명령의 입력으로 file1을 사용하고 명령의 처리 결과를 file2에 출력합니다.

출력 리디렉션과 유사하게 입력 리디렉션의 전체 단어는입니다 fd<file. 여기서 fd는 파일 설명자를 나타내며 작성되지 않은 경우 기본값은 표준 입력 파일 인 0입니다.


입력 리디렉션 예

[예제 1] 문서에있는 텍스트 줄 수를 센다.


Linux wc 명령을 사용하여 단어, 행 및 바이트 수를 포함하여 텍스트를 계산할 수 있습니다. 사용법은 다음과 같습니다.

  • wc [옵션] [파일 이름]

그중 -c옵션은 바이트 수를, -w옵션은 단어 수를, -l옵션은 행 수를 계산합니다.


readme.txt 파일에있는 텍스트 줄 수를 세십시오.

  • [root] $ cat readme.txt # 파일 내용 미리보기 
  • 나는
  • 매우
  • 자신있다. 
  • [root] $ wc -l <readme.txt # 입력 리디렉션 
  • 3

[예제 2] 파일 내용을 한 줄씩 읽습니다.

  • #! / bin / bash 
  • while read str; do 
  •     echo $ str 
  • done <readme.txt

운영 결과 :

나는

매우

자신있다.


이를 코드 블록 리디렉션이라고하며 동시에 명령 그룹을 파일로 리디렉션합니다. " 셸 코드 블록 리디렉션 "섹션에 자세히 설명되어 있습니다.


[예제 3] 사용자가 단말기에 입력 한 텍스트 줄 수를 센다.


여기서는 입력 방향 재 지정 기호를 사용합니다 <<.이 기호의 기능은 Ctrl + D 키를 사용하는 대신 명령 입력의 끝 기호로 특정 구분 기호를 사용하는 것입니다.

[root] $ wc -l << END 

> 123 

> 789 

> abc 

> xyz 

> END 

4

wc 명령은 구분 기호 END를 만나고 읽기를 완료 할 때까지 입력을 기다립니다.


<<다음 구분 기호는 자유롭게 정의 할 수 있습니다. 동일한 구분 기호가 다시 발생하는 한 두 구분 기호 사이의 내용이 명령 입력으로 사용됩니다 (구분자 자체는 포함하지 않음).

반응형