Gop*_*opi 7 bash compression shell-script checksum
有一个gz格式的40GB文件。我想查找cksum
未压缩格式的该文件的记录数。我的一种方法是:
gunzip
wc
,命令cksum
gzip
。这种方法的问题是提取和压缩文件将花费大量时间。可能需要 30-40 分钟左右。另一种方法可能是用来zcat
计算记录数和cksum
zcat <file name> | wc -l
zcat <file name> | cksum
这种方法可能需要更少的时间,但zcat
对同一个文件使用两次。有更好的方法吗?可能正在使用一个命令来查找记录计数和cksum
?
moreutils
Debian(和其他地方)上的软件包包含一个通用 utils 的小宝库。
其中之一是pee(1)
。它就像tee(1)
但不将输出写入(多个)文件,而是通过管道将其传递给(多个)命令。使用起来极其简单直观;例如
$ zcat foo.gz | pee md5sum wc
0a22adb99b92b4c5ad6beba9694238a3 -
403 2372 27766
Run Code Online (Sandbox Code Playgroud)
您可以使用tee
bash 的进程替换:
$ zcat foo.gz | tee >(md5sum >&2) | wc
6f869e2acc27a0330b10d9ffa6655e7b -
36568 45710 2743552
Run Code Online (Sandbox Code Playgroud)
它将文件解压缩一次,将解压缩的数据传递给该数据tee
,并将其作为输入文件传递给该文件,并md5sum
告知该文件将其输出打印到标准错误(因此不会被 捕获| wc
),然后我们还将输出传递给wc
.
归档时间: |
|
查看次数: |
549 次 |
最近记录: |