簡體   English   中英

Linux shell命令通過塊讀取/打印文件塊

[英]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可以通過給定的字節數將文件拆分成多個部分

你想要真正閱讀文本文件嗎? 跟你的眼睛一樣? 嘗試lessmore

你可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM