我有一个很大的 tar.gz 存档文件,其中包含 nxml
文件,总大小约为 5GB。
我的目标是从中提取文件,但是,我不必提取所有文件。我必须提取所有名称大于阈值的文件。
例如:
让我们考虑 1000 是我们的阈值。所以
path/to/file/900.nxml
不会被提取,但是
path/to/file/1100.nxml
将被提取。
所以我的要求是从存档中有条件地提取文件。
谢谢
最佳答案
- 使用
tar -tf <archive>
获取存档中的文件列表。 - 处理文件列表以确定需要提取的文件。将文件列表写入临时文件
<filelist>
,每个文件一行。- 查看您选择的标签,您可以根据自己的喜好使用 Python 或 bash 进行字符串过滤。
- 使用
tar -xf <archive> -T <filelist>
提取您需要的文件。
选项-T
或--files-from
从给定文件中读取要处理的文件名。- 另请参阅manpage for tar .
关于python - 从存档文件中有条件提取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57406452/