Recently I faced one requirement where i had to list only certain level of directories with "tar -tvf" (or) "jar -tvf" output.
Here is my sample tar file. where I need to list only two levels of files/directories.
The "awk" way:
Listing the parent directories alone:
Listing the Parent directories with its sub - directories(or) files
Another level down
Just change the "NF" value according to your requirement.
you can use this in case of "jar -tvf" as well
Hope it helps. Comments welcome.
Here is my sample tar file. where I need to list only two levels of files/directories.
bash-3.2# tar -tvf content.tar drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/ drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/directory2a/ drwxr-xr-x 0/0 0 Dec 29 17:00 2015 direcotry2/directory2a/directory2a_media/ -rw-r--r-- 0/0 33 Dec 29 17:01 2015 direcotry2/directory2a/directory2a_media/home.html drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/directory2a/directory2a_business/ drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/directory2b/ drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/directory2c/ drwxr-xr-x 0/0 0 Dec 29 16:56 2015 directory1/ drwxr-xr-x 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/ drwxr-xr-x 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/directory1a_media/ -rw-r--r-- 0/0 33 Dec 29 17:00 2015 directory1/directory1_a/directory1a_media/media.html -rw-r--r-- 0/0 33 Dec 29 17:00 2015 directory1/directory1_a/directory1a_media/home.html drwxr-xr-x 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/directory1a_press/ -rw-r--r-- 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/directory1a_press/press.html -rw-r--r-- 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/directory1a_press/welcome.html drwxr-xr-x 0/0 0 Dec 29 16:55 2015 directory3/
The "awk" way:
Listing the parent directories alone:
bash-3.2# tar -tvf content.tar |awk -F/ '{if(NF==3) print}' drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/ drwxr-xr-x 0/0 0 Dec 29 16:56 2015 directory1/ drwxr-xr-x 0/0 0 Dec 29 16:55 2015 directory3/
Listing the Parent directories with its sub - directories(or) files
bash-3.2# tar -tvf content.tar |awk -F/ '{if(NF==4) print}' drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/directory2a/ drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/directory2b/ drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/directory2c/ drwxr-xr-x 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/
Another level down
bash-3.2# tar -tvf content.tar |awk -F/ '{if(NF==5) print}' drwxr-xr-x 0/0 0 Dec 29 17:00 2015 direcotry2/directory2a/directory2a_media/ -rw-r--r-- 0/0 33 Dec 29 17:01 2015 direcotry2/directory2a/directory2a_media/home.html drwxr-xr-x 0/0 0 Dec 29 16:58 2015 direcotry2/directory2a/directory2a_business/ drwxr-xr-x 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/directory1a_media/ -rw-r--r-- 0/0 33 Dec 29 17:00 2015 directory1/directory1_a/directory1a_media/media.html -rw-r--r-- 0/0 33 Dec 29 17:00 2015 directory1/directory1_a/directory1a_media/home.html drwxr-xr-x 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/directory1a_press/ -rw-r--r-- 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/directory1a_press/press.html -rw-r--r-- 0/0 0 Dec 29 16:57 2015 directory1/directory1_a/directory1a_press/welcome.html
Just change the "NF" value according to your requirement.
you can use this in case of "jar -tvf" as well
Hope it helps. Comments welcome.
No comments :
Post a Comment