셸 스크립트는 텍스트 파일을 한 줄씩 처리하는 방법

자주 문체 파일을 한 줄씩 처리하는데, 셸에서 각 줄의 데이터를 어떻게 가져와서 그 줄의 데이터를 처리하고, 마지막에 다음 줄의 데이터를 읽고 순환 처리합니다. 다음과 같은 여러 가지 해결 방법이 있습니다.

1.read 명령을 통해 완료합니다.


read 명령은 표준 입력에서 한 줄을 읽고 입력한 줄의 각 필드의 값을 셸 변수에 지정합니다. IFS(내부 필드 구분자) 변수의 문자를 구분자로 사용합니다.VariableName(변수 이름) 매개 필드에 지정된 값은 마지막 필드까지 VariableName(변수 이름) 매개 변수에 의해 지정됩니다.
read 명령은 표준 입력이나 다른 파일 설명자의 입력을 수신합니다. 입력을 받은 후,read 명령은 데이터를 표준 변수에 넣습니다.
read를 이용하여 파일을 읽을 때마다read 명령을 호출할 때마다 파일의'한 줄'텍스트를 읽습니다.
파일에 읽을 수 있는 줄이 없을 때,read 명령은 0이 아닌 상태로 종료됩니다.

cat data.dat | while read line
do
 echo "File:${line}"
done

while read line
do
 echo "File:${line}"
done < data.dat

2. awk 명령을 사용하여 완료


awk는 우수한 텍스트 처리 도구로 매우 강력한 기능을 제공합니다.
문법 형식:awk [옵션]'명령어'작업 파일
공통 옵션: - F는 구분자를 지정하고 구분자는 ""로 시작합니다.
-v:var=value는 awk 프로그램이 시작되기 전에 변수 var에 valu를 지정합니다. 이 변수 값은 awk 프로그램의 BEGIN 속도에 사용됩니다.
-f: 명령줄에 awk 프로그램을 지정하는 대신 뒤에 awk 프로그램을 저장한 파일
awk를 이용하여 파일의 줄마다 데이터를 읽을 수 있고 줄마다 데이터를 처리할 수 있으며 줄마다 데이터의 줄마다 데이터를 단독으로 처리할 수 있다.

 cat data.dat | awk '{print $0}'
 cat data.dat | awk 'for(i=2;i<NF;i++) {printf $i} printf "
"}'
첫 번째 줄 코드는 데이터를 출력합니다.dat의 줄마다 데이터, 두 번째 코드는 줄마다 두 번째 열 이후의 데이터를 출력합니다.
단순한 데이터나 텍스트 파일을 줄별로 읽고 표시하려면awk 명령을 사용하는 것이 좋습니다.

3. for var in file 명령을 사용하여 완료


for var in file은 변수 var가 파일에서 값을 순환하는 것을 나타냅니다. 값의 구분자는 $IFS에 의해 결정됩니다.

for line in $(cat data.dat)
do
 echo "File:${line}"
done

for line in `cat data.dat`
do
 echo "File:${line}"
done
입력한 텍스트의 줄마다 공백이 없으면 라인은 입력한 텍스트에서 줄 바꿈표로 구분하여 값을 순환합니다.
입력 텍스트에 공백이나 탭이 포함되어 있으면 줄 바꾸기 읽기가 아닙니다. 라인은 입력 텍스트에 공백 구분자나 탭이나 줄 바꾸기 문자로 값을 가져옵니다.
IFS를 줄 바꿈 문자로 설정하여 한 줄씩 읽는 기능을 수행할 수 있습니다.
IFS의 기본값은 공백(공백, 탭, 줄 바꿈 포함)입니다.

총결산


셸 스크립트가 텍스트 파일을 한 줄 한 줄 처리하는 방법에 관한 이 글은 여기에 소개되었습니다. 더 많은 셸 처리 텍스트 파일 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기