有没有一个标准的Linux命令,我可以用块来读取文件块? 例如,我有一个大小为6kB的文件。 我想读/打印第一个1kB,然后第二个1kB …似乎猫/头/尾不会在这种情况下工作。
非常感谢。
dd会做到这一点
dd if=your_file of=output_tmp_file bs=1024 count=1 skip=0
然后对第二个块跳过= 1,依此类推。
然后你只需要读取output_tmp_file来获得块。
你可以用read -n
循环read -n
:
while read -r -d '' -n 1024 BYTES; do echo "$BYTES" echo "---" done < file.dat
split
可以通过给定的字节数将一个文件分割成几部分
你是否正在尝试阅读一个文本文件? 喜欢你的眼睛? 尝试less
或more
你可以使用fmt
例如10个字节
$ 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
要将每个块保存到文件,(或者可以使用-b split
)
$ tr '\n' ' '<file | fmt -w10 | awk '{print $0 > "file_"NR}'