![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Taking a name out of $PATH | cleansing_flame | UNIX for Dummies Questions & Answers | 7 | 01-28-2008 02:48 PM |
| $PWD shows absolute path vs path w/symbolic links | kornshellmaven | Shell Programming and Scripting | 3 | 06-13-2007 09:15 AM |
| how to check the actual path instead of link path | reldb | UNIX for Advanced & Expert Users | 4 | 10-04-2006 06:55 AM |
| vi - replacing a relative path with absolute path in a file | Yinzer955i | UNIX for Dummies Questions & Answers | 2 | 09-07-2006 08:47 AM |
| cc path problem - no acceptable path found | kendokendokendo | UNIX for Dummies Questions & Answers | 2 | 09-12-2005 06:52 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
|||
|
taking the end off a path
I need a script to be able to take a path such as "/foo/bar/thing" a put the "/foo/bar/" bit in one variable and the "thing" bit in another.
I figured awk would probably be the best tool for the job but looking at the man page didn't seem to help. The only way i know how to use awk is with '{print $1, $2 ,$3}' but that doesn't help unless i can get it to count from the end of the string. What should i do?
__________________
I intend to live forever... So far, so good! |
| Forum Sponsor | ||
|
|
|
|||
|
by minor changes i mean adapting it for my script and changing for example "FILE=$(basename program)" to "FILE=$(basename $program)"
I have also encountered another problem on closer investigation. $0 which provides the input for dirname and basename does not put a \ before spaces which dirname especially doesn't like. the only way around this that i can think of is to use something like; no1=$($0 | awk '{print $1}') no2=$($0 | awk '{print $2}') no3=$($0 | awk '{print $3}') execpath=$(echo $no1\ $no2\ $no3) exedir=$(dirname $execpath) exefile=$(filename $execpath) however this would require me to know how many spaces exactly will be in the files path. This is starting to look complex. What do i do?
__________________
I intend to live forever... So far, so good! |