파일의 마지막 80줄로 이동하고 싶지만 celery.log
파일의 줄 수를 모른다고 가정해 보겠습니다.
이 명령과 동일 tail
하지만 기본값 대신 끝에서 80번째 줄로 이동합니다.
어떻게 해야 합니까?
답변1
echo '$-79p' | ed -s celery.log
ed
그러면 파일의 마지막 줄부터 시작하여 79줄을 표시하는 스크립트가 이름이 지정된 파일에서 실행됩니다 .$-79p
celery.log
이 문자열을 이해하는 쉘에서:
ed -s celery.log <<<'$-79p'
파일에 80줄 미만이 있으면 ed
오류(표준 오류 스트림의 문자)가 반환되고 ?
표준 출력 스트림에 출력이 생성되지 않습니다.
답변2
tail -n 80 celery.log | head -n 1
이렇게 하면 마지막 80줄 중 첫 번째 줄이 표시됩니다(파일의 줄이 80줄 미만인 경우 파일의 첫 번째 줄이 표시됩니다).
답변3
다음을 수행할 수 있습니다.
tac celery.log | sed -n '80p'