[英]Linux shell command to read/print file chunk by chunk
是否有一個標准的Linux命令可以用來讀取塊的文件塊? 例如,我有一個大小為6kB的文件。 我想閱讀/打印第一個1kB,然后是第二個1kB ......似乎貓/頭/尾在這種情況下不會工作。
非常感謝。
您可以在循環中使用read -n
執行此操作:
while read -r -d '' -n 1024 BYTES; do
echo "$BYTES"
echo "---"
done < file.dat
dd會這樣做的
dd if=your_file of=output_tmp_file bs=1024 count=1 skip=0
然后跳過= 1表示第二個塊,依此類推。
然后,您只需要讀取output_tmp_file以獲取塊。
split
可以通過給定的字節數將文件拆分成多個部分
你想要真正閱讀文本文件嗎? 跟你的眼睛一樣? 嘗試less
或more
你可以使用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
要將每個塊保存到文件,(或者您可以使用-b split
)
$ tr '\n' ' '<file | fmt -w10 | awk '{print $0 > "file_"NR}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.