gmhk
gmhk

Reputation: 15940

How to read the complete path till the end of the directory structure using loop in scripting

I have a following directory structure as /home/ABCD/apple/ball/car/divider.txt, /home/ABCD this is like a root directory for my apps, I can get that easily, and from there all the sub folders may vary for every case, so I am looking for a generic program where I can extract the path through some loops

I want to extract the directory structure to a separate variable as "/home/ABCD/apple/ball/car/" Can any one help me

2nd Example : /home/ABCD/adam/nest/mary/user.txt variable should get the following value - "/home/ABCD/adam/nest/mary/"

Upvotes: 0

Views: 160

Answers (2)

Kent
Kent

Reputation: 195039

if the ending slash / is required, you could pick one:

kent$  echo "/home/ABCD/adam/nest/mary/user.txt"|grep -Po '.*/'        
/home/ABCD/adam/nest/mary/

or

kent$  echo "/home/ABCD/adam/nest/mary/user.txt"|sed -r 's#(.*/).*#\1#'
/home/ABCD/adam/nest/mary/

or

kent$  echo $(dirname /home/ABCD/adam/nest/mary/user.txt)"/" 
/home/ABCD/adam/nest/mary/

Upvotes: 1

user000001
user000001

Reputation: 33317

Use dirname

$ dirname /home/ABCD/apple/ball/car/divider.txt
/home/ABCD/apple/ball/car

To assign to variable do

var=$(dirname /home/ABCD/apple/ball/car/divider.txt)
echo "$var"

No spaces before and after the =

Upvotes: 1

Related Questions