awk에서 파일 끝부터 구문 분석하는 방법

awk에서 파일 끝부터 구문 분석하는 방법
#!/bin/sh
if [ $# -ne 8 ]; then
        echo "Usage: sh `basename $0` YYYYMMDD hour min masterid account destination filename forward|backward";
        exit 1;
fi

day=${1}
hour=${2}
min=${3}
masterid=${4}
account=${5}
destination=${6}
file=${7}
if [ "${8}" == "backward" ]; then
        backward="true";
fi

if [ "${backward}" != "true" ]; then
        awk -v day=${day} -v hour=${hour} -v min=${min} -v masterid=${masterid} -v account=${account} -v destination=${destination} -f /var/tmp/selfCross.awk /koba/c/dumper/${file}
else
        tac "/koba/c/dumper/${file}" | awk -v day=${day} -v hour=${hour} -v min=${min} -v masterid=${masterid} -v account=${account} -v destination=${destination} -f /var/tmp/selfCross.awk
fi

거꾸로라면! = true, 정상적으로 작동합니다. 그런데 어떤 이유로 tac이 작동하지 않는데 어떻게 해야 하나요? 즉시 반환됩니다. 위 스크립트에서 내가 뭘 잘못하고 있는 걸까요?

답변1

대답은 아니지만 팁: 문자열 동일성을 테스트하는 대신 "true" 및 "false" 명령을 사용하십시오.

backwards=false
if [[ some condition ]]; then backwards=true; fi

if $backwards; then
  do something
else
  do something else
fi

관련 정보