tmp1 tar ztf "$2" | sort > tmp2 comm -1 -6ren">
gpt4 book ai didi

bash - 如何在不使用临时文件的情况下比较 bash 中的两个 tar 文件?

转载 作者:行者123 更新时间:2023-11-29 09:49:09 24 4
gpt4 key购买 nike

我正在努力在没有临时工的情况下实现以下目标。文件。

#!/bin/bash
tar ztf "$1" | sort > tmp1
tar ztf "$2" | sort > tmp2
comm -1 -3 tmp{1,2}|while read line; do echo -e "$1: $line\n"; done
comm -2 -3 tmp{1,2}|while read line; do echo -e "$2: $line\n"; done
rm tmp{1,2}

没有 tmp 文件怎么办?

最佳答案

由于您使用每个临时文件两次,答案几乎肯定是否定的。但是,如果您修改脚本以使用单个命令(例如 comm 本身,或 diff),则以下内容应该有效:

diff <(tar ztf "$1" | sort) <(tar ztf "$2" | sort)

这使用 process substitution .

(另外,顺便说一句,应该使用 mktemp 来创建临时文件)

关于bash - 如何在不使用临时文件的情况下比较 bash 中的两个 tar 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9908256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com