remove os dois primeiros bytes de uma linha

1

Eu tenho um arquivo com 2 bytes de valores de indicadores binários em todas as linhas que precisam ser removidas.

Eu tentei sed , awk , cut , mas nenhum deles funciona (embora funcionem no modo vi ):

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

Exemplo:

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

Saída desejada:

Column1,Column2
Column1,Column2
Column1,Column2
Column1,Column2
    
por ranjan 18.10.2018 / 19:49

2 respostas

2

Usando cut :

cut -b 3- infile

Isso cortará os primeiros 2 bytes de cada linha ou imprimirá de 3 rd byte até o final da linha.

    
por 18.10.2018 / 20:26
0

Assumindo que o caractere ^C que você apresenta em cada linha é um Ctrl real C é um caractere ETX "fim do texto" real (hex 0x03), você poderia usar:

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

Se for uma simples string ^C , use:

sed 's/^.*^C//' file
    
por 19.10.2018 / 03:09