Retrieve directory path from full file path through sh


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Retrieve directory path from full file path through sh
# 1  
Old 09-21-2010
Retrieve directory path from full file path through sh

Hi,

I have a file abcd.txt which has contents in the form of full path file names i.e.
Code:
$home> vi abcd.txt
/a/b/c/r1.txt
/q/w/e/r2.txt
/z/x/c/r3.txt

Now I want to retrieve only the directory path name for each row
i.e
Code:
/a/b/c/
/q/w/e/

How to get the same through shell script?
I have done till now:
Code:
while read file
do
  cd  <here need the directory path for each row>
  .. do some common operation ...
done < abcd.txt

Note:
Previously Franklin suggested for getting only the file name to use:
Code:
"${file##*/}"

Please help!Smilie

Last edited by royzlife; 09-21-2010 at 07:58 AM.. Reason: info
# 2  
Old 09-21-2010
man dirname
This User Gave Thanks to achenle For This Post:
# 3  
Old 09-21-2010
achenle,
can you help -
i have done this:
Code:
while read file
do
  dir = `dirname $file`
  print $dir
done < latest.txt

but i am getting error!

---------- Post updated at 04:02 PM ---------- Previous update was at 03:54 PM ----------

well it got solved! Thanks!
# 4  
Old 09-21-2010
Code:
$ for F in /a/b/c/r1.txt /q/w/e/r2.txt /z/x/c/r3.txt; do echo ${F%/*}/; done
/a/b/c/
/q/w/e/
/z/x/c/

# 5  
Old 09-21-2010
Another way: Remove the base filename you found with ${file##*/}. This method does not delete the trailing soidus.

Code:
for file in "/a/b/c/r1.txt" "/q/w/e/r2.txt" "/z/x/c/r3.txt"
do
        echo "${file%%${file##*/}}"
done

/a/b/c/
/q/w/e/
/z/x/c/

# 6  
Old 09-21-2010
Code:
$ ruby -ne 'puts File.dirname($_)' file
/a/b/c
/q/w/e
/z/x/c

This User Gave Thanks to kurumi For This Post:
# 7  
Old 09-21-2010
Hi methyl,

Could you explain echo "${file%%${file##*/}}" command
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Convert Relative path to Absolute path, without changing directory to the file location.

Hello, I am creating a file with all the source folders included in my git branch, when i grep for the used source, i found source included as relative path instead of absolute path, how can convert relative path to absolute path without changing directory to that folder and using readlink -f ? ... (4 Replies)
Discussion started by: Sekhar419
4 Replies

2. UNIX for Dummies Questions & Answers

Extract directory name from the full directory path in UNIX using shell scripting

My input is as below : /splunk/scrubbed/rebate/IFIND.REBTE.WROC.txt /splunk/scrubbed/rebate/IFIND.REBTE.WROC.txt /splunk/scrubbed/loyal/IFIND.HELLO.WROC.txt /splunk/scrubbed/triumph/ifind.triumph.txt From the above input I want to extract the file names only . Basically I want to... (5 Replies)
Discussion started by: IshuGupta
5 Replies

3. Shell Programming and Scripting

How to list all Subdirectories and files with its full path in a parent directory?

How to list all Subdirectories and files with its full path in a parent directory? (1 Reply)
Discussion started by: johnveslin
1 Replies

4. Shell Programming and Scripting

$0 doesn't have full directory path

I'm running AIX unix korn shell. If I echo $0, I only get the filename, it does not have the directory name also. So when I do: `dirname $0` it returns a . (meaning current directory). How get $0 to return the full path/filename? Do I need something in my .profile? Thank you. (8 Replies)
Discussion started by: sboxtops
8 Replies

5. Shell Programming and Scripting

How do I get an ls -l to not show the full directory path?

Hey I'm new to the forums here, and I'm seeking help for this script that I'm writing. When I do ls -l of a directory it shows the full pathname for files in it. For example, if the directory is /internet/post/forum/ and the file is topic, it currently shows internet/post/forum/topic. What's the... (3 Replies)
Discussion started by: unity04
3 Replies

6. UNIX for Dummies Questions & Answers

Present Working Directory (not the full path)

Hi, Is there a command that tells you right away the current working directory? I know the command "pwd", but that one gives the full path. if pwd gives me: /a/b/c/d/ggg/HERE I want something that will give me: HERE Thanks, Gaurab (13 Replies)
Discussion started by: gaurab
13 Replies

7. Shell Programming and Scripting

How to extract strings from full path when full path is not fixed

/Path/snowbird9/nrfCompMgrRave1230100920.log.gz:09/20/2010 06:14:51 ERROR Error Message. /Path/snowbird6/nrfCompMgrRave1220100920.log.gz:09/20/2010 06:14:51 ERROR Error Message. /Path/snowbird14/nrfCompMgrRave920100920.log.gz:09/20/2010 06:14:51 ERROR Error Message.... (0 Replies)
Discussion started by: Shirisha
0 Replies

8. Shell Programming and Scripting

Sorting by Full directory path

I have a text file with full list of files with their full path. I wanted to sort it by directory then files then subdirectory by alphabetically. When I used the sort command it doesn't give like what I want. Could somebody help me on this. Here is the ex: This is what I'm getting... (2 Replies)
Discussion started by: javidraaj
2 Replies

9. Shell Programming and Scripting

retrieve part of file path

Hi I am trying to use sed to retrieve part of my html file's path. I am having a hard time getting what I want. Could someone give me some help? I want to retrieve the section after html and before the file name For example if I have the following, ... (3 Replies)
Discussion started by: tiger66
3 Replies

10. Shell Programming and Scripting

getting full path from relative path

given a relative path, how do i convert it into a full one. i.e. if i am in /home/polypus and i am given foo/bar then to get a full path i can just concatinate it with pwd, but what if i am given "../mama" how do i programmatically convert: /home/polypus and ../mama into ... (4 Replies)
Discussion started by: polypus
4 Replies
Login or Register to Ask a Question