tar command help -- extract single file

Hi,
I want to view/display the contents of one file in tar file.
For example if the tar file is sam.tar.gz and one of the file inside is E1.txt, how do i view the contents of this E1.txt file.

Olso if I want to extract the E1.txt file only from sam.tar.gz how can i do that.

Thanks in advance.

To print the files use "zcat". But I know no option for it to cat only a single file of the archive.

To list the contents of an archive, use:

tar tvf my.tar
# or
tar tvzf my.tar.gz

To extract the file "singlefile.dat" of the archive:

tar xvzf my.tar.gz singlefile.dat

Thanks.

One more question
Where will the singlefile.dat be extracted. I dont want to overwrite any existing file.

Usually in your pwd where you currently are. If done non-interactive via script and cronjob for example, you should do a cd to be sure, you are at the place in the filesystem, where you want to be.
I avoid to tar stuff with a leading slash. So I can always move to a tmp directory and extract there to avoid overwriting.
It's always a bad surprise if some &*!@$! (to have it in comic speech censorship) creates an archive with absolute path. That can cause an unwanted update of your data heh.

Actually I tared the file with absolute path like the command below
tar -cvf sam.tar /home/sam

Now I want to extract /home/sam/E1.txt in sam.tar to /home/ram

Please help.

As I said, please tar without absolute paths. You can get more problems of this than you'd like. Just create some tmp subdirectory close to your destination, uncompress/untar it there and move it to where it belongs.

Gnu tar helpfully removes any leading / in a path to avoid the potential problems that zaxxon describes -- unless specifically told to keep it with -P. If your tar doesn't do this, you can only do

tar -xf sam.tar /home/sam/E1.txt
cp /home/sam/E1.txt /home/ram

i.e. you will create E1.txt with the absolute rather than a relative path.
tar -x can only extract from the archive what you put in there; use -t (as zaxxon said) to see what that is.

With GNU tar you can use --strip to remove the top level directories when unpacking. See "man tar".