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