标签: byte

“ls -l <​​随机文件>”与“wc -c <随机文件>”的字节数

有没有什么可能的情况

ls -l file.txt
Run Code Online (Sandbox Code Playgroud)

显示的字节数与

wc -c file.txt
Run Code Online (Sandbox Code Playgroud)

在一个脚本中,我发现了这两个值的比较。那可能是什么原因?甚至可能有同一个文件的不同字节数吗?

ls wc byte

26
推荐指数
3
解决办法
1244
查看次数

16
推荐指数
3
解决办法
3万
查看次数

如何从文件的开头和结尾修剪字节?

我有一个文件,在文件的开头和结尾都有垃圾(二进制页眉和页脚)。我想知道如何核对这些字节。例如,让我们假设从一开始就有 25 个字节。并且,距离末尾有 2 个字节。

我知道我可以使用 truncate 和 dd,但是 truncate 不适用于流,而且在硬文件上运行两个命令似乎有点笨拙。如果truncate知道文件有多大,可以将文件转换为dd. 或者,如果有更好的方法来做到这一点?

files trim byte

13
推荐指数
2
解决办法
1万
查看次数

如何使用可选偏移量在块设备上找到第一个非零字节?

我正在尝试使用dd并打印其偏移量在块设备上找到第一个非零字节(从可选偏移量开始),但我被卡住了。我没有dd在标题中提及,因为我认为可能有比dd这样做更合适的工具,但我认为dd应该是一个好的开始。如果您知道更合适的工具和/或更有效的方法来实现我的目标,那也没关系。

与此同时,我将向您展示我dd在 bash 方面的进展,到目前为止。

#!/bin/bash

# infile is just a temporary test file for now, which will be replaced with /dev/sdb, for instance
infile=test.txt
offset=0

while true; do
  byte=`dd status='none' bs=1 count=1 if="$infile" skip=$offset`
  ret=$?

  # the following doesn't appear to work
  # ret is always 0, even when the end of file/device is reached
  # how do I correctly determine if dd has reached the end of file/device?
  if …
Run Code Online (Sandbox Code Playgroud)

bash dd block-device byte

11
推荐指数
2
解决办法
921
查看次数

如何计算文件中的字节数,将相同的字节分组?

示例:我有文件“mybinaryfile”,十六进制内容为:

A0 01 00 FF 77 01 77 01 A0
Run Code Online (Sandbox Code Playgroud)

我需要知道这个文件中有多少个 A0 字节,多少个 01,等等。结果可能是:

A0: 2
01: 3
00: 1
FF: 1
77: 2
Run Code Online (Sandbox Code Playgroud)

有什么方法可以直接在 shell 中进行计数,还是我需要用任何语言编写程序来完成这个特定任务?

linux command-line binary files byte

5
推荐指数
2
解决办法
1718
查看次数

字节和字符(至少 *nixwise)有什么区别?

我了解任何字符都由一个或多个字节组成。

如果我没记错的话,至少在 *nix 操作系统中,一个字符通常(或完全?)仅由一个字节组成。

字节和字符(至少 *nixwise)有什么区别?

character-encoding special-characters terminology escape-characters byte

4
推荐指数
2
解决办法
864
查看次数

如何将隐形标记埋入文本行中?

如何将不可见标记埋入随机文本行中?这样的标记必须存在,但对于阅读打印在控制台上的文本的人来说,它是不可见的。

我想通过一个不可见的标记来识别这些行,例如,稍后将它们放入或取出。

我试过0x00没有成功。我希望grep0x00某处打印匹配的行。但这不起作用:

$ echo -e "a\0b" | hexdump -C
00000000  61 00 62 0a                                       |a.b.|
00000004
$ echo -e "a\0b" | grep "a\0b"
Run Code Online (Sandbox Code Playgroud)

grep text byte

3
推荐指数
1
解决办法
594
查看次数

Bourne shell 兼容的“${#string}”中字符串的“长度”是多少?

从这次讨论中得出:

\n

当我有(zsh 5.8,bash 5.1.0)

\n
var="ASCII"\necho "${var} has the length ${#var}, and is $(printf "%s" "$var"| wc -c) bytes long"\n
Run Code Online (Sandbox Code Playgroud)\n

答案很简单:这是5个字符,占用5个字节。

\n

现在,var=M\xc3\xbcller产量

\n
M\xc3\xbcller has the length 6, and is 7 bytes long\n
Run Code Online (Sandbox Code Playgroud)\n

这表明该${#}运算符计算的是代码点,而不是字节。这在 POSIX 中有点不清楚,他们说它计算“字符”。char通常,如果 POSIX C 中的字符不是八位字节,那么这会更清楚。

\n

无论如何:不错!还好,看到了LANG==en_US.utf8

\n

现在,

\n
M\xc3\xbcller has the length 6, and is 7 bytes long\n
Run Code Online (Sandbox Code Playgroud)\n
\xe2\x80\x8d\xe2\x99\x80\xef\xb8\x8f has the length 5, and is 17 bytes long\n …
Run Code Online (Sandbox Code Playgroud)

bash zsh unicode bourne-shell byte

3
推荐指数
1
解决办法
725
查看次数

wget --report-speed 有哪些选项?

当我执行此命令时:

wget --report-speed=type
Run Code Online (Sandbox Code Playgroud)

他们只输入它接受的是bits。它不会有数字、千位/千字节或字节。

帮助页面 ( wget --help) 说:

--report-speed=TYPE   Output bandwidth as TYPE.  TYPE can be bits.
Run Code Online (Sandbox Code Playgroud)

暗示他们 TYPE可以是别的东西?

我还没有找到哪些选项,以及(如果此选项不这样做)如何强制将速度显示为字节或千字节。

download wget byte

1
推荐指数
2
解决办法
2万
查看次数

为什么 od 计算十进制值是错误的?

这个问题与 enzotib 对以下问题的回答有关:How can I use Bash to find 2 bytes in a binary file,增加它们的值,并替换?

这将两个字节转换为其十六进制值:

$ echo -n $'\x1b\x1f' | od -tx2
0000000 1f1b
0000002
Run Code Online (Sandbox Code Playgroud)

但是现在,这应该给我十进制值:

echo -n $'\x1b\x1f' | od -tu2
0000000  7963
0000002
Run Code Online (Sandbox Code Playgroud)

但是如果我将十六进制值转换为十进制,它应该是

$ printf "%d" 0x1b1f
6943
Run Code Online (Sandbox Code Playgroud)

这是为什么?我od对十进制输出使用错误吗?

od hex byte

0
推荐指数
1
解决办法
236
查看次数

计算文件名的字节数

我如何知道文件名的重量有多少字节?只是文件,而不是完整路径。我试过这个:

echo 'filename.extension' | wc -c
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?

size byte

0
推荐指数
1
解决办法
808
查看次数