[완료] sed에서 끝라인부터 지우기..

choco6의 이미지

sed에서 특정 구간을 지우고 싶을 때 다음과 같이 합니다.

$ sed -e '1,50d' test.txt

위의 커맨드는 1라인부터 50라인까지 삭제하는 명령인데...
가령 파일의 끝에서 끝으로부터 거꾸로 50라인을 삭제하는 명령은 어떻게 해야하는지.. 다음과 같이 해봤는데 에러가 나네요.
$ sed -e '$-50, $d' test.txt


이런 요구를 위해 sed 커맨드를 어떻게 줘야하는지요..
slomo의 이미지

이거 읽어 보세요.

http://sed.sourceforge.net/sed1line.txt

Quote:

# delete the last 10 lines of a file
sed -e :a -e '$d;N;2,10ba' -e 'P;D' # method 1
sed -n -e :a -e '1,10!{P;N;D;};N;ba' # method 2

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

====
No one asks you for change or directions.
-- Slo-Mo, J. Krokidas

choco6의 이미지

오오.. 정말 멋진 참고자료가 있었군요...
정말 unix를 배우는 길은 끝이 없는것 같군요.. --;;
slomo님 감사합니다..