for 루프 if 문 구문 오류

for 루프 if 문 구문 오류

이 문장이 사실이라면 내 코드에 구문 오류가 있어 파일을 이동할 수 없습니다. 이 코드는 영원히 지속됩니다. 또한 따옴표를 추가하려고 시도했지만 실패했습니다. 나는 내가 어리석은 실수를 할 것이라는 것을 알고 있습니다.

for file in *.sort; 
do if [`wc -l` $i -eq 57817]; 
then mv "$i" "../$i"; 
fi; done

어떤 제안이 있으십니까?

답변1

  1. [사이에 공간이 있어야합니다.
  2. $i설정되지 않음
  3. 명령 대체에는 전체 명령이 포함되지 않습니다( wc -l file전체 명령이므로 그냥 래핑하면 됩니다 wc -l).
  4. wc -l file오류를 일으킨 줄 번호와 파일 이름을 출력합니다. wc -l <file이것을 피하기 위해 사용될 수 있습니다
for file in *.sort; do 
  if [ "$(wc -l <"$file")" -eq 57817 ]; then 
    mv "$file" "../$file"
  fi
done

관련 정보