Ich kämpfe um Folowing ohne Temp zu erreichen. Dateien.Wie zwei tar-Dateien in bash zu vergleichen, ohne temporäre Dateien zu verwenden?
#!/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}
, wie diese Dateien ohne tmp zu tun?
Als kleinere Optimierung Sie einen einzelnen 'comm' Aufruf verwenden könnten, und ersetzen Sie das eher ungeschickt' while' Schleife mit einem sed-Skript. 'comm -3 eins zwei | sed -e "s/^ \ t \/$ 1: /; t; s/\\ t $ //; s/^ $ 2: /" | sort' (Wenn Ihr 'sed'' \ t' nicht als Tab interpretiert, verwenden Sie wörtliche Tabs). – tripleee