Ubuntu 16
私は現在、catを使用してリモートコンピュータからWebサイトログビューアにログファイルを転送しています。ログファイルの先頭には、ファイルが16ビットか8ビットかを示す2バイトの署名があります。
ファイルをナノプロセスすると、ファイルは次のようになります。
��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^@
cat filename
ファイルの先頭の最初の2バイトがまだ見える場合
▒▒20180428 15:43:08
20180428 15:43:08
これはiconv -f utf-16 -t utf-8 filename
シェルで素敵に見えます...
20180430 03:57:46
20180430 03:57:46
ただし、Webサイトには部分的にエンコードされた最初の行が表示されます。
20180430 03:57:46 ㋾ 㠀 㐀㌀ ㌀㨀㔀㜀㨀㐀㘀 嘀攀爀猀椀漀渀 㴀 㐀⸀ ⸀
ログを元に戻すと、iconv -f utf-16 -t utf-8 filename | tac
ウェブサイトに完全に表示されます。
どのように進むべきかわかりません。
答え1
最初の2バイトを削除するには、以下を試してください。
dd if=orginal_file of=new_file ibs=2 skip=1
new_file
出力時に最初の2バイトをスキップします。
答え2
最初の2バイトのみを削除するには、tail -c +3
次のものを使用できます。
$ printf 'hello\n' >> file1
$ tail -c +3 file1
llo
$ _