乌班图16
我目前使用 cat 将日志文件从远程计算机传输到网站日志查看器。日志文件开头有一个两字节签名,告诉它该文件是 16 位还是 8 位。
如果我对文件进行纳米处理,该文件看起来像这样......
��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
但在网站上显示第一行部分编码
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
如果您只想删除前两个字节,则可以使用tail -c +3
.例如:
$ printf 'hello\n' >> file1
$ tail -c +3 file1
llo
$ _