I know this has been covered a lot, I have been searching and reading for hours on the subject, however so far I have been unsuccessful at accomplishing the goal using sed.
I know this can be done with parameter expansion (Thanks cfajohnson for a great explanation of parameter expansion).
However the goal is sed'ucation!
I am here...
Then I combine that with
Like
For the ultimate goal of the pure 'filename'...
All works good except when the path begins with './'..
What would be the resolution??
I'm not getting a good understanding of RE's yet so an explanation of how the expression works would be awesome as well! (This is my first attempt at RE's)
Or without the extention:
If you want the "pure" filename, what's wrong with basename?
scottn, Thank you, Obliviously I don't need to say "It works"!, About basename, yup, you did miss something... the sed'ucation part!
This really is just for education with sed and RE's.
Quote:
Originally Posted by danmero
danmero, Thank you, Again, you know I don't need to say "It works"!
To both!
I thank you, not only for this answer but the others I have gleaned from this site that may very well have been yours!
Anyways, A couple things stand out to me...
1. scottn's method has no '$' ... If I remember correctly the '$' means EOL.
2. Both use double quotes (") versus single (')
Super clean method ... I was way off!
Does anyone know of a workbook or something that has sed and RE projects to work through??
The $ isn't neccessary (regular expressions are greedy and "dot rest of line" (\..*) is the same as "dot rest of line to the end of the line"! (\..*$)) because it will match the longest expression it can from the first dot it finds (hence the greedy bit).
Single, double, doesn't matter unless there's something you want the shell to expand somewhere - in which case you'd use double quotes.
Google.... there's lots of stuff out there. (or look around on this site. my RE's are anything but great, but if there's an answer to be had, you could probably find it here)
Last edited by Scott; 08-22-2009 at 06:56 PM..
Reason: removed some garb (conservatively!!)
The $ isn't neccessary (regular expressions are greedy and "dot rest of line" (\..*) is the same as "dot rest of line to the end of the line"!
Understood ... Makes sense, Thank you!
Quote:
Originally Posted by scottn
Single, double, doesn't matter unless there's something you want the shell to expand somewhere - in which case you'd use double quotes.
Yup, I understood this, wanted to ensure there was no other reason...
I typically use double quotes unless I know it needs single anyways.
If I'm fighting something and there is no parameters to expand I'll use singles.
Quote:
Originally Posted by scottn
Google.... there's lots of stuff out there.
I don't Google, too much garbage! ... I use altavista...
Quote:
Originally Posted by scottn
(or look around on this site. my RE's are anything but great, but if there's an answer to be had, you could probably find it here)
Thats the reason I almost always include something along the lines of:
"Thank you all for the answers to my unasked questions!"
And I very much mean that to everyone!
Finding it can get tough if you don't know exactly what you are looking for!
I have found a slight issue with the RE...
oooPs, Found out the hard way...
Had to manually rename things!
Hi all! i have a question how do you sort the filename of a path directory according to alphabetic order.
Example: sort according to highlighted text. There maybe space for filename
Path=/home/pikamon/Desktop/ABC;
Path=/home/pikamon/Desktop/ABD;
Path=/home/pikamon/Desktop/Riduan la;... (5 Replies)
Hi All,
Thanks in Advance
I am working on a shell script. I need some assistance.
My code:
if
then
set "subscriber" "promplan" "mapping" "dedicatedaccount" "faflistSub" "faflistAcc" "accumulator"\
"pam_account";
for i in 1 2 3 4 5 6 7 8;... (0 Replies)
Hi All,
Thanks in Advance
I am working on a shell script. I need some assistance.
My Requirement:
1) There are some set of files in a directory like given below
OTP_UFSC_20120530000000_acc.csv
OTP_UFSC_20120530000000_faf.csv
OTP_UFSC_20120530000000_prom.csv... (0 Replies)
Hi,
I have a list of paths with files at the end. How can strip off filenames.
This is what I have:
/apps/test/abc/file.txt
/apps/new/home/daily/report.xml
/apps/old/home/weekly/out/test.sh
This is what I need:
/apps/test/abc/
/apps/new/home/daily/
/apps/old/home/weekly/out/
... (10 Replies)
Hello,
I have the string "/a/b/c/ddd.txt" and i want to get only the filename, in this case "ddd.txt". I have as something known in the script the pattern "/a/b/c/", so I`ve tried something like:
echo "/a/b/c/ddd.txt" | cut -d "/a/b/c/" -f2
but it doesn`t go, any help?.
thanks,
bye (2 Replies)
Hi Experts,
need one help.. m writing a shell script for which i need the entire path of the file but without its extension.
running the below script gives error at the statement DIR = `dirname $FILE` --command not found.
#!/bin/bash
jar xvf *jar
for FILE in `find . -name "*.class"`
... (3 Replies)
Hi,
Could anyone help me in writing a single line code by either using (sed, awk, perl or whatever) to extract a specific path from the PATH environment variable?
for eg: suppose the PATH is being set as follows
PATH=/usr/bin/:/usr/local/bin:/bin:/usr/sbin:/usr/bin/java:/usr/bin/perl3.4
... (2 Replies)
the script on excution should take a directory path from useran a numric input and it should check indicate whether its write or not?
if the cmmd sh<script-name>,dir/path.<500>" is greater than 500 in size should be copied to dir ,temp in pwd and display the mesage'files of 2000 bytes hav been... (4 Replies)
hey im writing batch program for the first time and i have almost finished it the only problem is that i want to extract basename from absolute path
for eg :
if my first argument is c:\abcd\xyz\temp.txt then i want only temp.txt in variable.
and how do i extract some part from string for eg... (1 Reply)
In a foreach loop I end up with $file containing the filename INCLUDING the whole path. I want this reduced to just the filename, but I can't seem to remember how I did it some years back. I am sure I can do it with "sed", but I am pretty sure I have seen a simpler command.
Anyone?
borgeh (3 Replies)