Linux shell命令通过块读取/打印文件块

时间:2010-03-05 19:09:57

标签: linux file shell

我是否可以使用标准的Linux命令来读取块的文件块? 例如,我有一个大小为6kB的文件。我想阅读/打印第一个1kB,然后是第二个1kB ...... 在这种情况下,似乎猫/头/尾不会起作用。

非常感谢。

5 个答案:

答案 0 :(得分:7)

您可以在循环中使用read -n执行此操作:

while read -r -d '' -n 1024 BYTES; do
    echo "$BYTES"
    echo "---"
done < file.dat

答案 1 :(得分:4)

dd会这样做

dd if=your_file of=output_tmp_file bs=1024 count=1 skip=0

然后跳过= 1表示第二个块,依此类推。

然后您只需要读取output_tmp_file以获取块。

答案 2 :(得分:1)

split可以按给定的字节数

将文件拆分成多个部分

答案 3 :(得分:1)

您是否尝试读取文本文件?跟你的眼睛一样?试试lessmore

答案 4 :(得分:0)

您可以使用fmt

例如10bytes

$ cat file
a quick brown fox jumps over the lazy dog
good lord , oh my gosh

$ tr '\n' ' '<file | fmt -w10 file
a quick
brown fox
jumps
over
the lazy
dog good
lord , oh
my gosh

每行10个字符。如果您想阅读第二个块,请将其传递给awk ..eg

等工具
$ tr '\n' ' '<file |  fmt -w10 | awk 'NR==2' # print 2nd chunk
brown fox

要将每个块保存到文件,(或者您可以将split与-b)

一起使用
$ tr '\n' ' '<file |  fmt -w10 | awk '{print $0 > "file_"NR}'