Let's assume you have a tarball called
lotsofdata.tar.gz and you just know there is one file in there you want but all you can remember is that its name contains the word
contract. You have two options:
grep to list the contents of your tarball so you can find out the full path and name of any files that match the part you know, and then use
tar to extract that one file now you know its exact details, or you can use two little known switches to just extract all files that match what little you do know of your file name—you don't need to know the full name or any part of its path for this option. The details are:
$ tar -tzf lotsofdata.tar.gz | grep contract
This will list the details of all files whose names contain your known part. Then you extract what you want using:
$ tar -xzf lotsofdata.tar.gz <full path and filename from your list above>
You may need
./ in front of your path for it to work.
$ tar -xzf lotsofdata.tar.gz --wildcards --no-anchored '*contract*'
Up to you which you find easier or most useful.