파일의 전체 줄을 모두 인쇄

파일의 전체 줄을 모두 인쇄

파일의 전체 줄을 모두 인쇄하는 방법은 무엇입니까? "완료"란 개행 문자로 끝나는 것을 의미합니다. grepEOF를 줄 구분 기호로 처리하면 grep '^.*$' file파일 끝에 개행 문자가 없더라도 마지막 줄이 인쇄됩니다.

전체 문제는 로그 파일을 구문 분석하는 데서 발생합니다. 어떻게든 마지막 항목이 완전히 기록되었는지 확인해야 합니다. 즉, 새 줄로 끝납니다.

답변1

간단한 방법은 다음을 사용하는 것입니다 perl.

perl -ne '/\n/ && print' file

파일의 마지막 문자가 개행 문자인지 확인하려면 다음을 수행할 수 있습니다.

tail -c1 file | grep -q '^$' && echo yes || echo no

하지만 해당 -c옵션은 POSIX가 아니므로 이식성이 없습니다.

답변2

read(적어도 Bourne 쉘에서는) 줄 바꿈으로 끝나야 합니다:

# /bin/sh -c 'echo -e "foo\nbar\c" | while read line; do echo $line; done'
foo
#

따라서 다음과 같은 것을 사용할 수 있습니다.

#!/bin/sh
while read line
    do echo $line
done < logfile.txt

관련 정보