2개의 파일을 생성할 때 예기치 않은 토큰 "완료" 근처에 구문 오류가 발생했습니다.

2개의 파일을 생성할 때 예기치 않은 토큰 "완료" 근처에 구문 오류가 발생했습니다.

다음 코드를 사용하여 2개의 출력 파일(예: input1, input2)을 얻으려고 하면 아래와 같은 구문 오류가 발생합니다.

test.txt   
Q
L
A D
1 10
2 21
3 22
4 5
5 9

while read -r line;  if [[ $line == "A" ]] ||[[ $line == "Q" ]]||[[ $line == "L" ]] ; then awk '$2 < "11" { print $0 }' input1.txt; awk '$2 < "11" { print $1 }' input2.txt; done > test.txt

input1.txt
Q
L
A D
1 10
4 5
5 9
input2.txt
1 
4 
5 

답변1

@steeldriver 님의 수정 사항을 바탕으로 항목이 하나 더 추가되었습니다.오직기능이 아닌 구문의 경우

while read -r line; do      #missing `do`
    if [[ $line == "A" ]] ||[[ $line == "Q" ]]||[[ $line == "L" ]] ; then 
        awk '$2 < "11" { print $0 }' input1.txt
    fi     # the missing fi
    awk '$2 < "11" { print $1 }' input2.txt
done < test.txt     # correct the redirection

님의 글을 보면 님이 원하는 바는 이룰 수 있을 것 같습니다

awk ' NF > 1 && ($2*1) < 11 && ($2*1) > 0 {print $1} ' test.txt

그리고

awk ' $1 ~ /^[QLA]/ || ( ($2+0) < 11 && ($2+0) >0 ) {print $0} ' test.txt

awk$2에 알파벳 문자가 포함된 경우 $2에 대한 산술 검사는 다음과 같이 해결됩니다.0

관련 정보