파일의 특정 위치부터 파일 끝까지 줄을 삭제하는 방법

파일의 특정 위치부터 파일 끝까지 줄을 삭제하는 방법

줄이 많은 파일이 있습니다.

1458행부터 파일 끝까지의 내용을 삭제하고 싶습니다. 나는 이것을 할 수 있다고 생각 sed하지만 어떻게 해야 할지 모르겠습니다.

답변1

sed '1458,$d'

필요한 경우 이를 사용하여 파일을 편집할 수 있습니다 -i.

예를 들어

sed -i '1458,$d' filename.txt

답변2

이를 수행할 수 있는 방법은 많지만 파일이 매우 큰 경우 주어진 위치 이후의 모든 행 처리를 중지하고 종료하는 것이 좋습니다. 이것이 바로 이 명령이 q수행하도록 설계된 작업입니다 sed.

sed 1458q file

답변3

$ head -n 1458 myfile > myfile.tmp ; mv myfile.tmp myfile

참고 사항: 내가 아는 한, 새 파일을 먼저 생성하지 않고 줄 수(bash/shell 등)를 기준으로 파일을 줄이는 명시적인 방법은 없습니다(sed 또는 sed -i(n). ) 새로 작성된 파일을 수용할 디스크 공간이 부족한 경우 이는 중요합니다. 이 경우 새 파일의 크기를 대략적으로 추측할 수 있으면 -s {number of bytes} myfile을 자릅니다.하다새 파일을 생성하지 않고 파일 끝을 삭제합니다.

관련 정보