我很努力地實現沒有臨時工出現。文件。如何比較bash中的兩個tar文件而不使用臨時文件?
#!/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'調用,並更換相當笨拙'while'循環用sed腳本。 'comm -3 one two | sed -e「s/^ \ t \/$ 1:/; t; s/\\ t $ //; s/^ $ 2:/」| sort'(如果你的'sed'不把'\ t'解釋爲標籤,使用文字標籤)。 – tripleee 2012-03-28 14:07:53