删除一行的前两个字节

删除一行的前两个字节

我有一个文件,每行都有 2 个字节的二进制指示器值,必须将其删除。

我尝试过sedawkcut它们都不起作用(尽管它们在vi模式下工作):

sed 's/^.\{,2\}//' file.dat
awk '{print substr($0,3)}' file
cut -c3-  file

例子:

<84>^cColumn1,Column2
x^CColumn1,Column2
v^CColumn1,Column2
<81>^CColumn1,Column2

期望的输出:

Column1,Column2
Column1,Column2
Column1,Column2
Column1,Column2

答案1

使用cut

cut -b 3- infile

这将从每行中剪切前 2 个字节或从第 3 个字节打印到行尾。

答案2

假设^C您在每行上显示的字符是实际CtrlC的 ETX“文本结束”字符(十六进制 0x03),您可以使用:

sed 's/^.*\o3//' file

如果是简单的^C字符串,则使用:

sed 's/^.*^C//' file

相关内容