2016-12-10 4 views
1

hello.txtを含む1.tar.gzとhello.txtとhelloworld.txtを含む2.tar.gzという2つのアーカイブがあります。2つのtar.gzの間の差分の取得方法

私はこの2つのtar.gzの間にdiffを取得します。出力はhelloworld.txtでなければなりません。

私はTISのコマンドを試してみた:

diff <(tar -tvf 1.tar.gz | sort) <(tar -tvf 2.tar.gz | sort) 

が、出力は間違っていました。私はこの結果を持っている:

< drwxr-xr-x user/user   0 2016-12-09 23:29 1/ 
< -rw-r--r-- user/user  344 2016-12-09 23:29 1/hello.txt.gpg 
--- 
> drwxr-xr-x user/user   0 2016-12-09 23:27 2/ 
> -rw-r--r-- user/user  344 2016-12-09 23:27 2/hello.txt.gpg 
> -rw-r--r-- user/user  363 2016-12-09 23:27 2/helloworld.txt.gpg 

答えて

2

また、これは動作します:

$ diff <(tar -tvf 1.tar.gz | rev | cut -d\/ -f1 | rev) <(tar -tvf 2.tar.gz | rev | cut -d\/ -f1 | rev) 
1a2 
> helloworld.txt.gpg 

さらなる説明:

| rev | cur -d\/ -f1 | revは完全なパスのうち、ファイル名だけを取得する簡単な方法です。

+0

作品です!どうもありがとう! – Mattasse

関連する問題