gpt4 book ai didi

linux - 删除文件末尾的一系列字符,包括 LF(换行符)

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:55 24 4
gpt4 key购买 nike

我有一个包含一些 PCL 序列的文件。我在文件末尾有这个序列(十六进制):

461b 2670 3158 0a    F.&p1X.

我想删除序列: &p1X,包括后面的字符。在 99% 的情况下,LF 遵循该序列。

我试过这个命令:

sed -b 's/\o33&p[0-9]X$//Mg' ~/test.txt >test2.txt

但是,它在 test2.txt 的末尾附加了 LF。此外,如果我指定 . 而不是 $,它不再匹配该行。

如果你想玩这个,使用这个命令生成输入文件:

echo -e "SomeString\033&p1X" > ~/test.txt

重定向在末尾附加一个 LF 字符。

谢谢

最佳答案

如果我理解得很好,您肯定知道您的文件末尾包含该字符序列。如果是这种情况,我会简单地截断最后六个字节。无论最后一个字符是换行符还是您想要的任何字符,它都会起作用...

例子:

$ echo -e "SomeString\033&p1X" > test.txt
$ od -c test.txt
0000000 S o m e S t r i n g 033 & p 1 X \n
0000020
$ truncate -s -6 test.txt
$ od -c test.txt
0000000 S o m e S t r i n g
0000012

这也非常有效,因为它将使用系统调用 truncate()。

关于linux - 删除文件末尾的一系列字符,包括 LF(换行符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34733819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com