Shell gt 비교 파일 라인

Shell gt 비교 파일 라인

파일에 2줄 이상이 있는지 확인하려고 합니다. 다음 스크립트를 작성했습니다.

  (wc -l myfile | cut -c  1) -gt 2

하지만 오류가 발생합니다. 예상 플래그 "-gt" 근처에 구문 오류가 있습니다. 어떤 아이디어가 있습니까?

답변1

파일에 세 줄 이상이 포함되어 있는지 테스트하려면 다음을 수행하세요.

if [ "$( wc -l <file )" -gt 2 ]; then echo 'more than two lines'; fi

당신은 $이전 것을 놓쳤고 (...), 그것도 놓쳤습니다 if [ ... ]. $( ... )명령의 출력으로 뭔가를 하려고 하기 때문에 명령 대체가 필요합니다 .

어떤 사람들은 다음 구문을 선호합니다.

test "$( wc -l <file )" -gt 2 && echo 'more than two lines'

그렇지 않으면

[ "$( wc -l <file )" -gt 2 ] && echo 'more than two lines'

파일을 표준 입력에 입력하여 wc문제를 방지합니다 cut.

관련 정보