Sweet Tart Dough Recipe - LeGourmetTV
차례:
Bash 스크립트를 작성할 때 때때로 파일을 한 줄씩 읽어야하는 상황에 처하게됩니다. 예를 들어, 스크립트에서 처리해야하는 데이터가 포함 된 텍스트 파일이있을 수 있습니다.
이 튜토리얼에서는 Bash에서 파일을 한 줄씩 읽는 방법에 대해 설명합니다.
한 줄씩 파일 구문 읽기
파일을 한 줄씩 읽는 가장 일반적인 구문은 다음과 같습니다.
while IFS= read -r line do echo "$line" done < input_file
또는 동등한 단일 라인 버전:
while IFS= read -r line; do echo $line; done < input_file
어떻게 작동합니까?
입력 파일 (
input_file
)은
read
명령으로
read
파일의 이름입니다.
read
명령은 파일을 한 줄씩 읽어 각 줄을
line
변수에 할당합니다. 모든 라인이 처리되면 while 루프가 종료됩니다. 내부 필드 구분 기호 (
IFS
)는
read
명령의 기본 동작 인 선행 및 후행 공백을 유지하기 위해 널 문자열로 설정됩니다.
한 줄씩 파일 읽기 예제
다음 예를 살펴 보겠습니다. 가장 널리 사용되는 Linux 배포 목록과 패키지 관리자가 쉼표 (
,
)로 구분 된
distros.txt
라는 파일이 있다고 가정합니다.
Ubuntu, apt Debian, apt CentOS, yum Arch Linux, pacman Fedora, dnf
파일을 한 줄씩 읽으려면 터미널에서 다음 코드를 실행하십시오.
while IFS= read -r line do echo "$line" done < distros.txt
코드는 파일을 한 줄씩 읽고 각 줄을 변수에 할당하고 변수를 에코합니다. 기본적으로 cat 명령을 사용하여 파일 내용을 표시하는 것과 동일한 출력이 표시됩니다.
apt를 사용하는 배포판 만 인쇄하려면 어떻게합니까? 한 가지 방법은 if 문을 사용하고 행에 apt 하위 문자열이 포함되어 있는지 확인하는 것입니다.
while IFS= read -r line do if]; then echo "$line" fi done < distros.txt
Ubuntu, apt Debian, apt
파일을 한 줄씩 읽을 때 하나 이상의 변수를 read 명령에 전달하면
IFS
기반의 행을 필드로 분할합니다. 첫 번째 필드는 첫 번째 변수, 두 번째에서 두 번째 변수 등에 지정됩니다. 변수보다 많은 필드가 있으면 남은 필드가 마지막 변수에 할당됩니다.
다음 예제에서는 IFS를 쉼표 (
,
)로 설정하고 두 개의 변수
distro
및
pm
을 read 명령에 전달합니다. 행의 시작부터 첫 번째 쉼표까지의 모든 것이 첫 번째 변수 (
distro
)에 지정되고 나머지 행은 두 번째 변수 (
pm
)에 지정됩니다.
while IFS=, read -r distro pm do echo "$pm" is the package manager for "$distro" done < distros.txt
apt is the package manager for Ubuntu apt is the package manager for Debian yum is the package manager for CentOS pacman is the package manager for Arch Linux dnf is the package manager for Fedora
대체 파일 읽기 방법
프로세스 대체 사용
프로세스 대체를 통해 명령의 출력을 파일 이름으로 전달할 수 있습니다.
while IFS= read -r line do echo "$line" done < <(cat input_file)
Here 문자열 사용
Here String은 Here 문서의 변형입니다. 문자열
(cat input_file)
은 줄 바꿈을 유지합니다.
while IFS= read -r line do echo "$line" done <<< $(cat input_file)
파일 디스크립터 사용
파일 디스크립터를 사용하여 루프에 입력을 제공 할 수도 있습니다.
while IFS= read -r -u9 line do echo "$line" done 9< input_file
파일 디스크립터에 대해 작업 할 때 쉘 내부 파일 디스크립터와의 충돌을 피하려면 4와 9 사이의 숫자를 사용하십시오.
결론
Bash에서는 파일 이름을 while read 루프에 대한 입력으로 제공하여 파일을 한 줄씩 읽을 수 있습니다.
bash 터미널일부 파일을 복구하고 손상된 하드 드라이브에서 다른 파일을 안전하게 지울 수 있습니까?

Zeterjons는 유틸리티 포럼에 그 하드 드라이브의 다른 파일들이 구조를 넘어서 파괴되는지 확인하면서 물리적으로 추락 한 하드 드라이브의 파일을 구출하는 것입니다.
bash에서 문자열에 하위 문자열이 포함되어 있는지 확인하는 방법

Bash에서 문자열을 사용할 때 가장 일반적인 작업 중 하나는 문자열에 다른 문자열이 포함되어 있는지 여부를 확인하는 것입니다. 이 기사에서는 문자열에 하위 문자열이 포함되어 있는지 확인하는 몇 가지 방법을 보여줍니다.
bash에서 문자열을 비교하는 방법

Bash 스크립트를 작성할 때 종종 두 문자열을 비교하여 동일한 지 여부를 확인해야합니다. 두 개의 문자열은 길이가 동일하고 동일한 문자 시퀀스를 포함 할 때 동일합니다.