쉘에서 wc -l이 짝수인지 홀수인지 테스트하는 방법은 무엇입니까?

쉘에서 wc -l이 짝수인지 홀수인지 테스트하는 방법은 무엇입니까?

file1이라는 파일이 있다고 가정해 보겠습니다.

$ a=$(wc -c file1)
$ echo $a
233 file1

이제 어떻게 해야 해?

$ b=$(expr $a % 2)
$ echo $b
1

wc -c make의 file1이 충돌을 일으킬 것 같나요?

답변1

나는 다음과 같은 것을 사용할 것입니다 :

if [ $(( $(wc -c < your-filehere ) % 2)) -eq 1 ]
then 
  echo file has odd number of bytes
else 
  echo file has even number of bytes
fi

답변2

파일 이름을 제거하는 또 다른 방법 wc은 를 사용하는 것입니다 wc -c <file1. 이렇게 하면 두 번째 단계가 필요하지 않습니다 cat.

답변3

한 가지 방법은 다음과 같습니다.

a=$(cat file1 | wc -c)

파일 이름이 출력되지 않으며 expr작업할 수 있습니다.

관련 정보