是否有标准Linux命令可以用来按块读取文件块?例如,我有一个大小为6kB的文件。我想读取/打印第一个1kB,然后是第二个1kB ... 在这种情况下似乎猫/头/尾不会工作。Linux shell命令按块读取/打印文件块
非常感谢。
是否有标准Linux命令可以用来按块读取文件块?例如,我有一个大小为6kB的文件。我想读取/打印第一个1kB,然后是第二个1kB ... 在这种情况下似乎猫/头/尾不会工作。Linux shell命令按块读取/打印文件块
非常感谢。
DD会做
dd if=your_file of=output_tmp_file bs=1024 count=1 skip=0
,然后跳到第二个块为1,依此类推。
然后您只需读取output_tmp_file即可获取该块。
split
可以将文件分割成由给定的字节件数
你可以在一个循环中与read -n
做到这一点:
while read -r -d '' -n 1024 BYTES; do
echo "$BYTES"
echo "---"
done < file.dat
如何让它在十六进制中打印? – 2011-04-07 13:11:25
可以使用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}'
是你试图实际上读一个文本文件?喜欢用你的眼睛?尝试less
或more
也许命令dd? – Karussell 2010-03-05 19:20:02