Se você quiser remover os primeiros 2 bytes, tente:
dd if=orginal_file of=new_file ibs=2 skip=1
Isso gerará new_file
com os primeiros 2 bytes ignorados.
Ubuntu 16
Atualmente, uso cat para enviar um arquivo de log de uma máquina remota para um visualizador de log de sites. O arquivo de log tem uma assinatura de dois bytes no início, que informa que o arquivo é de 16 bits ou 8 bits.
se eu nano o arquivo, o arquivo parece assim ...
��2^@0^@1^@8^@0^@4^@2^@8^@ ^@1^@5^@:^@4^@3^@:^@0^@8^@
^@0^@1^@8^@0^@4^@2^@8^@ ^@1^@5^@:^@4^@3^@:^@0^@8^@
Se eu cat filename
ainda posso ver os primeiros 2 bytes no começo do arquivo
▒▒20180428 15:43:08
20180428 15:43:08
Se eu faço iconv -f utf-16 -t utf-8 filename
Parece ótimo em shell ...
20180430 03:57:46
20180430 03:57:46
, mas aparece no site com a primeira linha parcialmente codificada
20180430 03:57:46 ㋾ 㠀 㐀㌀ ㌀㨀㔀㜀㨀㐀㘀 嘀攀爀猀椀漀渀 㴀 㐀⸀ ⸀
Agora, se eu inverter o log iconv -f utf-16 -t utf-8 filename | tac
, ele aparecerá no site perfeitamente.
Não sabe como proceder.
Se você quiser remover os primeiros 2 bytes, tente:
dd if=orginal_file of=new_file ibs=2 skip=1
Isso gerará new_file
com os primeiros 2 bytes ignorados.
Se você estiver apenas tentando remover os dois primeiros bytes, faça isso com tail -c +3
. Por exemplo:
$ printf 'hello\n' >> file1
$ tail -c +3 file1
llo
$ _
Tags text-processing cat scripting