Visit Our UNIX and Linux User Community


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 06: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

Previous Thread | Next Thread
Test Your Knowledge in Computers #765
Difficulty: Medium
Cache read misses from an instruction cache generally cause the longest delays because the processor, and in particular the thread of execution, has to wait until the instruction is fetched from main memory.
True or False?

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

Featured Tech Videos