我有一个文件,每行都有 2 个字节的二进制指示器值,必须将其删除。
我尝试过sed
,awk
但cut
它们都不起作用(尽管它们在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