wc -l 파일 이름에 한 줄이 적게 표시됩니다. 안내해주세요

wc -l 파일 이름에 한 줄이 적게 표시됩니다. 안내해주세요

wc -l filename 명령을 사용하십시오. 파일의 총 행 수가 2인 경우 한 행이 줄어들지만 1만 표시됩니다. 안내해주세요.

답변1

wc -l개행 수, 즉 올바르게 구분된 행 수를 셉니다.

귀하의 경우에 아마도 무슨 일이 일어나고 있는지는 파일에 마지막 줄 바꿈 뒤에 몇 바이트가 있다는 것입니다.

따라서 파일은 유효한 텍스트 파일이 아니며 일부 응용 프로그램은 이러한 추가 바이트를 무시하고 일부 응용 프로그램은 이를 추가 줄로 처리합니다(일부는 누락된 줄 바꿈을 추가함).

POSIX 텍스트 정의에 따르면 이러한 추가 바이트는 한 줄을 구성하지 않습니다.

그러나 POSIX를 준수하는 사람들은 awk이를 추가 레코드 형성으로 처리해야 하므로 다음과 같습니다.

awk 'END {print NR}' < your-file

수학을 할 수 있습니다.

이런 경우라고 가정하면 누락된 줄바꿈을 추가하는 것이 더 좋습니다.

printf '\n' >> your-file

예:

$ printf 'a\nb' | wc -l
1
$ printf 'a\nb\n' | wc -l
2
$ printf 'a\nb' | awk 'END {print NR}'
2

관련 정보