[Shell 스 크 립 트] 텍스트 파일 을 한 줄 씩 처리 합 니 다.

4240 단어
항상 문체 파일 을 한 줄 씩 처리 합 니 다. Shell 에서 각 줄 의 데 이 터 를 어떻게 얻 은 다음 에 이 줄 의 데 이 터 를 처리 하고 마지막 으로 다음 줄 의 데 이 터 를 읽 고 순환 처리 합 니 다. 여러 가지 해결 방법 은 다음 과 같 습 니 다.
1. read 명령 을 통 해 완료 합 니 다.
read 명령 은 표준 입력 이나 다른 파일 설명자 의 입력 을 받 고 입력 을 받 은 후 read 명령 은 데 이 터 를 표준 변수 에 넣 습 니 다.
read 를 이용 하여 파일 을 읽 을 때 read 명령 을 호출 할 때마다 파일 의 '한 줄' 텍스트 를 읽 습 니 다.
파일 에 읽 을 줄 이 없 을 때 read 명령 은 0 이 아 닌 상태 로 종 료 됩 니 다.
1 cat data.dat | while read line
2 do
3     echo "File:${line}"
4 done
5 
6 while read line
7 do 
8     echo "File:${line}"
9 done < data.dat

2. awk 명령 으로 완료
awk 는 우수한 텍스트 처리 도구 로 매우 강력 한 기능 을 제공 합 니 다.
awk 를 이용 하여 파일 의 줄 마다 데 이 터 를 읽 고 줄 마다 데 이 터 를 처리 할 수 있 으 며 줄 마다 데 이 터 를 단독으로 처리 할 수 있 습 니 다.
1 cat data.dat | awk '{print $0}'
2 cat data.dat | awk 'for(i=2;i'

첫 번 째 줄 코드 는 data. dat 의 줄 마다 데 이 터 를 출력 하고, 두 번 째 코드 는 줄 마다 두 번 째 열 이후 의 데 이 터 를 출력 합 니 다.
단순 한 데이터 나 텍스트 파일 을 줄 별로 읽 고 표시 하면 awk 명령 을 사용 하 는 것 이 편리 합 니 다.
3. var in file 명령 사용 완료
for var in file 은 변수 var 가 file 에서 순환 적 으로 값 을 추출 하 는 것 을 표시 합 니 다. 값 을 추출 하 는 구분자 가 $IFS 로 확 정 됩 니 다.
1 for line in $(cat data.dat)
2 do 
3     echo "File:${line}"
4 done
5 
6 for line in `cat data.dat`
7 do 
8     echo "File:${line}"
9 done

텍스트 줄 마다 빈 칸 이 없 으 면 라인 은 입력 텍스트 에서 줄 바 꿈 문자 로 값 을 반복 합 니 다.
입력 텍스트 에 빈 칸 이나 탭 문 자 를 포함 하면 줄 을 바 꾸 어 읽 는 것 이 아 닙 니 다. line 은 입력 텍스트 에서 빈 칸 구분자 나 탭 문자 또는 줄 바 꾸 기 특수 고리 에 따라 값 을 추출 합 니 다.
IFS 를 줄 바 꿈 문자 로 설정 하여 한 줄 씩 읽 을 수 있 습 니 다.
IFS 의 기본 값 은: 공백 (빈 칸, 탭 문자, 줄 바 꿈 문자 포함) 입 니 다.
 

좋은 웹페이지 즐겨찾기