Shell 파일 내용 읽 기

다른 네티즌 의 소 개 를 발췌 하여 그 내용 을 복사 합 니 다.https://www.cnblogs.com/wangyao3568/p/7675896.html
Liux 에 서 는 한 파일 을 한 줄 씩 읽 는 방법 이 많 습 니 다. 그 중에서 가장 많이 사용 되 는 것 은 아래 스 크 립 트 의 방법 이 고 효율 이 가장 높 으 며 가장 많이 사용 하 는 방법 입 니 다.여러분 에 게 직관 적 인 느낌 을 주기 위해 서 우 리 는 큰 파일 을 만 드 는 방식 으로 각종 방법의 집행 효율 을 검증 할 것 입 니 다.방법 1: while 순환 중 집행 효율 이 가장 높 고 가장 많이 사용 되 는 방법.
function while_read_LINE_bottm()  {  
    While read LINE  
    do  
        echo $LINE  
    done   < $FILENAME  
}  

注释:我习惯把这种方式叫做read釜底抽薪,因为这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样。

방법 2: 재 정립 법;파이프 법: cat $FILENAME | while read LINE
Function While_read_LINE() {  
    cat $FILENAME | while read LINE  
    do  
         echo $LINE  
    done  
}  
          
注释:我只所有把这种方式叫做管道法,相比大家应该可以看出来了吧。当遇见管道的时候管道左边的命令的输出会作为管道右边命令的输入然后被输入出来。  

방법 3: 파일 설명 기법
function while_read_line_fd() {  
    exec 3

방법 4 for 순환.
function  for_in_file(){  
    for  i  in  `cat $FILENAME`  
    do  
        echo $i  
    done  
}  
注释:这种方式是通过for循环的方式来读取文件的内容相比大家很熟悉了,这里不多说。  

각 방법 을 시험 해 보 니 그 방법의 집행 효율 이 가장 높다.
우선 스 크 립 트 (스 크 립 트 첨부 파일 참조) 로 70000 줄 의 파일 을 만 듭 니 다. 파일 위 치 는/script/bigfile 입 니 다.그리고 아래 스 크 립 트 를 통 해 각 방법의 실행 효율 을 테스트 합 니 다. 스 크 립 트 는 간단 하고 설명 하지 않 습 니 다.
#!/bin/bash  
FILENAME="$1"  
TIMEFILE="/tmp/loopfile.out" > $TIMEFILE  
SCRIPT=$(basename $0)  
   
function usage(){  
echo -e "
USAGE: $SCRIPT file
" exit 1 } function while_read_bottm(){ while read LINE do echo $LINE done < $FILENAME } function while_read_line(){ cat $FILENAME | while read LINE do echo $LINE done } function while_read_line_fd(){ exec 3> $TIMEFILE echo -e "
" echo -e "method 2:" echo -e "function while_read_line " time while_read_line >> $TIMEFILE echo -e "
" echo -e "method 3:" echo "function while_read_line_fd" time while_read_line_fd >>$TIMEFILE echo -e "
" echo -e "method 4:" echo -e "function for_in_file" time for_in_file >> $TIMEFILE

스 크 립 트 실행 후: [root@localhost셸]\#./hile/script/bigfile 스 크 립 트 출력 내용: method 1: function whileread_bottm
real 0m5.689s user 0m3.399s sys 0m1.588s
method 2: function while_read_line
real 0m11.612s user 0m4.031s sys 0m4.956s
method 3: function while_read_line_fd
real 0m5.853s user 0m3.536s sys 0m1.469s
method 4: function for_in_file
real 0m5.153s user 0m3.335s sys 0m1.593s
다음은 우 리 는 각 방법 에 대해 속도 에 따라 순 서 를 매 긴 다.real 0 m 5.153s method 4 (for 순환 법) real 0 m 5.689 s method 1 (while 솥 밑 에서 임금 을 뽑 는 법) real 0 m 5.853s method 3 (표지 부 법) real 0 m 11.612 s method 2 (파이프라인 법)
이 를 통 해 알 수 있 듯 이 각 방법 에서 for 문장의 효율 이 가장 높 고 while 순환 에서 파일 을 읽 을 때 while read LINE do echo $LINE

좋은 웹페이지 즐겨찾기