줄이 많은 파일이 있습니다.
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을 자릅니다.하다새 파일을 생성하지 않고 파일 끝을 삭제합니다.