![파일 줄 번호에서 "n"을 뺀 줄로 이동 [중복]](https://linux55.com/image/132965/%ED%8C%8C%EC%9D%BC%20%EC%A4%84%20%EB%B2%88%ED%98%B8%EC%97%90%EC%84%9C%20%22n%22%EC%9D%84%20%EB%BA%80%20%EC%A4%84%EB%A1%9C%20%EC%9D%B4%EB%8F%99%20%5B%EC%A4%91%EB%B3%B5%5D.png)
파일의 마지막 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'