2011-04-27 2 views
1

파일이 있다고 가정합니다. 내가 tail 지난 10 라인과 일부 데이터가있어. 그리고 다음에 내가 tail에 올 때, 그 길이는 4 씩 증가합니다. 따라서 tail 만 데이터를 얻기 위해 많은 라인을 필요로합니다. 이 간단한 명령 줄이 있습니까? tail, wcgrep과 같은 조합?이전에 중단했던 곳에서 파일 꼬리말을 작성 하시겠습니까?

+0

왜이 태그가 C++입니까? C++ 솔루션이나 셸 명령을 찾고 있습니까? – interjay

+0

@sehe : my bad ... –

+0

설명을 삭제 한 후 그 내용이 명확하지 않기 때문에 제 의견을 삭제하겠습니다. 또한 C++ 태그를 편집 할 것입니다. 관련 지식이있는 시청자를 더 많이 확보 할 것으로 생각합니다. – sehe

답변

1

꼬리를 닫을 때 파일 크기를 저장하면 tail -c +[previous size]을 수행 할 수 있습니다. 이것은 끝에서 여러 줄 대신 파일의 특정 바이트 오프셋에서 시작합니다. 첫 번째 꼬리 프로세스를 닫을 때와 크기를 측정 할 때 사이에 크기가 변경되면 경쟁 조건이 발생할 수 있습니다.

-f 옵션을 계속 사용하는 대신 tail 명령을 닫고 다시 여는 이유는 무엇입니까?

+0

@PrasanthMadhavan : @ Random832에 동의합니다. 디자인이 옳지 않은 것 같습니다 (아마도 그렇습니다). FIFO, 파이프 및/또는 표준 읽기에 대한 유닉스 개념을 알고 있습니까? 어쩌면 execlp를 호출하고 새로운 프로세스를 생성하는 대신 파일에서 직접 읽을 수 있도록 프로그램을 수정할 수 있습니다. 행운을 빕니다! – shellter

관련 문제