从文件末尾删除最后 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

相关内容