Parsing a variable


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Parsing a variable
# 1  
Old 08-23-2010
Question Parsing a variable

Can someone help me? I have been looking in the archives as I am sure this is very simple to do, but I do not know.
I have a variable which sometimes contains a file name and sometimes contains a fully qualified file name.
I want to be able to separate the directory from the file name into 2 different variables:
For example
/app/myapp/bin/my.sql
would give me back a path of: /app/myapp/bin
and a file name of: my.sql

Thank you,
Your help is appreciated.
# 2  
Old 08-23-2010
Depends on which shell. For Kshell, and probably bash, this will work:

Code:
# assume original filename in ofile
filename=${ofile##*/}            # basename -- delete all to the last slant
path=${ofile%$filename}         # delete the filename from the original path/file

Yes, you could use the basename and dirname commands, but those, or any other external command, are much less efficient than using shell built-in variable manipulation.

This does leave path with a trailing /. If you want it removed, add one more line:
Code:
path=${path%/}

Path will of course be empty if the original filename did not have a path component.

Last edited by agama; 08-23-2010 at 09:07 PM.. Reason: fixed typo
This User Gave Thanks to agama For This Post:
# 3  
Old 08-23-2010
Code:
# get the filename
basename /app/myapp/bin/my.sql

# get the folder 
dirname /app/myapp/bin/my.sql

This User Gave Thanks to rdcwayx For This Post:
# 4  
Old 08-24-2010
Why don't you use basename and dirname command?
Code:
basename /app/myapp/bin/my.sql
my.sql

Code:
dirname /app/myapp/bin/my.sql
/app/myapp/bin

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parsing csv file and pass to a variable

Hi, Newbie here and I need some help to parse a csv file that contains fields separated by ",". What I need to achieve here is, read the 1 line file and extract 240 fields and pass to a variable and then read the next 240 fields and pass to a variable, over and over. If anyone can assist that... (4 Replies)
Discussion started by: tmslixx
4 Replies

2. Shell Programming and Scripting

Parsing a $VARIABLE within a script.

Hello all, I have a situation where I need to parse for certain items from a $VARIABLE within a sh script. The sh script is run when an alert comes in. The alert data payload has a Message field called "EVENTMSG" The script that is run takes the "EVENTMSG" and prints it out to the... (12 Replies)
Discussion started by: dlundwall
12 Replies

3. Shell Programming and Scripting

Parsing Output of a Variable

i have a log file that contains something similar to this: one two three four five six seven eight nine ten eleven twelve thirteen fourteen one two three four five six seven eight nine ten eleven twelve thirteen fourteen one two three four five six seven eight nine ten eleven twelve... (3 Replies)
Discussion started by: SkySmart
3 Replies

4. Shell Programming and Scripting

XML parsing with a variable

I have the following XML <Audit_Type>1</Audit_Type><Session_Id>34505863</Session_Id> <StatementId>1</StatementId><EntryId>1</EntryId> <Extended_Timestamp>2012-03-06T10:25:20.789459</Extended_Timestamp> <DB_User>KASINIY</DB_User> <OS_User>majohn1</OS_User><OS_Process>28636</OS_Process>... (3 Replies)
Discussion started by: BeefStu
3 Replies

5. Shell Programming and Scripting

Parsing file list in variable

Hello, somewhere in a shell script, i am storing the output of "ls" into a variable. My question is how can i parse this variable to get each filepath. I don't want to create a temporary file to write down all the filenames and then parse it.. is there a easy way out.. here is what... (3 Replies)
Discussion started by: prasbala
3 Replies

6. Shell Programming and Scripting

Parsing a variable length file

Hi I am new to shell scripting. I need to parse a file which contains the header and detail records and split into n of file based on dept ID, for ex. INPUT FILE: DEPT ID: 1 EMPNAME: XYZ EMPAddress: XYZZZ DEPT ID: 2 EMPNAME: ABC EMPAddress: ABCD DEPT ID: 1 EMPNAME: PQR EMPAddress:... (6 Replies)
Discussion started by: singhald
6 Replies

7. Shell Programming and Scripting

parsing a variable

Hi, I want to get an input from user and parse the input. The legal characters allowed in the input are alnum(a-zA-Z0-0), . , - Also the first and las characters must be alnum only. e.g if the input is abc.ghh-sok.com then the script should return correct, and if the input is like... (2 Replies)
Discussion started by: g_rohit7
2 Replies

8. Shell Programming and Scripting

parsing a string into variable

I know solution to this but I was wondering if its easier than what i think I have to pass 20 parameters to a script, which of course is not working so I parsed $3 to be a pipe deliminated string for instance below a.ksh One Two Compa|Compb|Compc|compd|............. Now i have to read... (5 Replies)
Discussion started by: Anubhav
5 Replies

9. UNIX for Dummies Questions & Answers

Parsing a variable length record

I need to pick a field out of a variable record - the field is always found 4 fields after a certain text string, but it can be on any line of the record and in any position across the record on a line. I have had no luck through any of the Unix editors being able to cut a field that isn't always... (17 Replies)
Discussion started by: Barb
17 Replies

10. Shell Programming and Scripting

Parsing a variable string

Hi all, I have a problem surfacing and I hope you all could help. What I have to do is take a input file and fill out a fax template from that file. The biggest problem I found was I have to parse the string "//FAX(faxnumber=555-5555;style="style1"; and on and on. The string can be in any... (5 Replies)
Discussion started by: pageld
5 Replies
Login or Register to Ask a Question