파일 끝에서 마지막 n 문자(\n \r 및 ^Z 포함) 제거(sed 사용)

파일 끝에서 마지막 n 문자(\n \r 및 ^Z 포함) 제거(sed 사용)

끝이 이상한 파일이 있습니다.

cat splitted.0473.csv | tail -c 8 | od -c
0000000   6   4   0  \r  \n 032  \r  \n
0000010    

이것은 ( 032라고^Z문자 바꾸기).

파일 끝에서 마지막 3자(바이트?)를 제거하여 다음과 같이 보이도록 하고 싶습니다.

cat splitted.0473.csv | tail -c 8 | od -c
0000000   6   4   0  \r  \n
0000010    

몇 가지 예를 시도했지만 sed성공하지 못했습니다. 나는 가정한다마지막 n자 삭제sed(또는 다른 것)로 달성하기가 더 쉽습니다.^Z\r\n파일 끝의 특정 문자 바꾸기.

답변1

다음을 사용하여 마지막 줄을 삭제할 수 있어야 합니다 sed.

sed -i '$d' splitted.0473.csv

-->

$ printf '640\r\n\032\r\n' | sed '$d' | od -c
0000000   6   4   0  \r  \n
0000005

관련 정보