2017-05-16 5 views
2

두 개의 다른 텍스트 파일 (행 번호가 동일 함)을 읽고 각 행의 다섯 번째 열을 서로 비교하고 싶습니다. 그러나 그것은 나를 위해 작동하지 않았다. 아무도 나를 도울 수 있습니까? 여기에 내 코드 : AWK에서두 개의 다른 텍스트 파일을 읽고 각 행의 열을 가져옵니다.

df -h --total>current_filesystem_usage.txt 
if [ -s previous_months_filesystem_usage.txt ] 
then 
    #reading from two different files and store each line into a variable 
    while read current_file_line <&3 && read previous_file_line <&4 
    do 

    current_filesystem_name=$(cat $current_file_line | awk {'print $1'}) 
    current_filesystem_usage=$(cat $current_file_line | awk {'print $5'}) 

    previous_filesystem_name=$(cat $previous_file_line | awk {'print $1'}) 
    previous_filesystem_usage=$(cat $previous_file_line | awk {'print $5'}) 

    if [ ${current_filesystem_usage%?} -ge ${previous_filesystem_usage%?} ] 
      then echo "There is problem !!! " 
      echo "Current disk usage:${current_filesystem_name}, ${current_filesystem_usage}" 
      echo "Previous month's disk usage:${previous_filesystem_name}, ${previous_filesystem_usage}" 
     #I also want to store all echo output to output.txt file 

    elif [ ${current_filesystem_usage%?} -lt ${previous_filesystem_usage%?} ] 
      then echo "There is no problem. Everything is alright." 
       echo "Current disk usage: ${current_filesystem_name}, ${current_filesystem_usage}" 
       echo "Previous month's disk usage: ${previous_filesystem_name}, ${previous_filesystem_usage}" 
     fi 

     done 3<current_filesystem_usage.txt 4<previous_months_filesystem_usage.txt 

fi 
+0

차이점을 비교하고 계산하려면'-h' 대신'-m'을 사용할 수 있습니다. 사람이 읽을 수 있지만 잘 분석되지 않은 형식이 아닌 정수 값으로 결과를 메가 바이트 단위로 출력합니다. –

+0

사용률을 비교하고 싶습니다. 메가 바이트가 아니야. – Serhat

답변

1

는 :

$ awk ' 
NR==FNR {    # process the first file 
    a[FNR]=$5   # hash field $5 to a, use row number as key 
    next }    # move to next record 
$5 > a[FNR] {   # process the second file, if current is greater than previous 
    print "error"  # output error 
} 
' file1 file2 

그것은 기본적으로 a에 파일 1 해시 키로 행 번호를 사용합니다. 비교 결과가 귀하의 게시물에 언급되지 않았으므로 더 많은 ATM을 지원할 수 없습니다.

+0

조금 설명해 주시겠습니까? 예를 들어 무엇이 무엇이며 왜 $ 0부터 시작해야할까요? – Serhat

+1

비교 결과, 전류가 이전 반향 오류보다 큰 경우, 그렇지 않은 경우 모든 것이 정상입니다. – Serhat

+1

'a'는'file1'이 처리 될 때'$ 5'가 저장되는 해쉬이고, 행 번호는 키입니다. –