如何在bash中收缩大文件?
我有一个文件,我想截断到2kb(即保留前2kb的数据,去掉其余的)。我怎样才能用bash做到这一点 使用如何在bash中收缩大文件?,bash,Bash,我有一个文件,我想截断到2kb(即保留前2kb的数据,去掉其余的)。我怎样才能用bash做到这一点 使用dd: dd if=yourfile of=firstLump bs=2k count=1 dd if=/dev/null of=/file/to/truncate seek=1 bs=2k if=输入文件 of=输出文件 bs=块大小 计数=块数 可在Linux和Mac OSX上使用。使用dd: dd if=yourfile of=firstLump bs=2k count=1 dd
dd
:
dd if=yourfile of=firstLump bs=2k count=1
dd if=/dev/null of=/file/to/truncate seek=1 bs=2k
if=输入文件
of=输出文件
bs=块大小
计数=块数
可在Linux和Mac OSX上使用。使用dd
:
dd if=yourfile of=firstLump bs=2k count=1
dd if=/dev/null of=/file/to/truncate seek=1 bs=2k
if=输入文件
of=输出文件
bs=块大小
计数=块数
可在Linux和Mac OSX上使用。命令是(惊奇,惊奇)
命令是(惊奇,惊奇)
符合标准的方法(不依赖任何纯Linux工具,如
truncate
)是使用dd
:
dd if=yourfile of=firstLump bs=2k count=1
dd if=/dev/null of=/file/to/truncate seek=1 bs=2k
与其他的
dd
答案不同,它只复制文件的前2k个,而此答案在该点截断目标文件。执行此操作的标准兼容方法(不依赖任何仅Linux的工具,如truncate
)是使用dd
:
dd if=yourfile of=firstLump bs=2k count=1
dd if=/dev/null of=/file/to/truncate seek=1 bs=2k
与另一个只复制文件的前2k的
dd
answer不同,这一个在该点截断目标文件。您可以在纯bash
中执行类似操作:
IFS= read -r -n 2048 first2k < file
printf "%s" "$first2k" > file
您可以在pure
bash中执行类似操作:
IFS= read -r -n 2048 first2k < file
printf "%s" "$first2k" > file
也就是说,这是一个Linuxim,当然不能保证在所有支持bash的系统上都会出现。也就是说,这是一个Linuxim,当然不能保证在所有支持bash的系统上都会出现。“使用dd”确实是一个正确的答案,如果要实现可移植性的话。然而,这个特殊的用法并不是就地截断操作。@CharlesDuffy哦,我不知道它可以:-),我在Mac的手册页上也看不到它。请启发我/我们!请随意添加您自己的答案或编辑我的答案。谢谢。我已经添加了另一个答案。“使用dd”确实是正确的答案,如果你想要便携的话。然而,这个特殊的用法并不是就地截断操作。@CharlesDuffy哦,我不知道它可以:-),我在Mac的手册页上也看不到它。请启发我/我们!请随意添加您自己的答案或编辑我的答案。谢谢。我添加了另一个答案。这不是一个真正的bash问题,而是一个操作系统问题bash
本身没有任何内置的截断操作方法;相反,您应该使用bash调用操作系统附带的工具,例如truncate
或dd
。这些工具中有哪些可用,它们有哪些选项,这取决于你的操作系统——你在这里没有指定。这不是一个bash问题,而是一个操作系统问题bash
本身没有任何内置的截断操作方法;相反,您应该使用bash调用操作系统附带的工具,例如truncate
或dd
。这些工具中有哪些可用,它们有哪些选项,取决于您的操作系统,您在这里没有指定这些操作系统。与其取消IFS,为什么不使用隐含的REPLY
名称呢?如果不设置名称,REPLY
不会删除空白。我本来打算进行编辑,但决定保留first2k
作为问题的更具描述性的变量名称。我也会添加默认值。(另外,我前几天刚从你的回答或评论中了解到,分词只会影响显式名称。)隐式比显式好。。。不用等待。与其取消IFS,为什么不直接使用隐含的REPLY
名称?如果不设置名称,REPLY
不会删除空白。我本来打算进行编辑,但决定保留first2k
作为问题的更具描述性的变量名称。我也会添加默认值。(另外,我前几天刚从你的回答或评论中了解到,分词只会影响显式名称。)隐式比显式好。。。不,等等。