l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2010 Jun 30 15:45

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Regular expression help
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Regular expression help

Take 2:

perl -n -e 'chomp; if(/([^ ]+)$/) { print "rm -f $1\n"; }' < files-to-delete.txt

-n will loop over the input lines like -p but it won't echo the input
lines. Chomp will remove the newlines. Adding the "if" makes sure we
don't print "rm -f" for empty lines or lines that don't match.

Then you have your rm commands and you can scan them for correctness.


On Wed, Jun 30, 2010 at 3:13 PM, Harold Lee <harold@hotelling.net> wrote:
> If none of the filenames contain spaces(!), you can write a regexp to
> match the end of the line using the $ anchor, e.g.
> perl -p -e '/([^ ]+)$/; print "rm -f $1\n";' < files-to-delete.txt
> Harold
> On Wed, Jun 30, 2010 at 3:01 PM, David Spencer, Internet Handyman
> <spencer@pageweavers.com> wrote:
>> Guys, I'm sorry about asking this on the list; but I seem to have a mental
>> block when it comes to regular expressions. Here's what I'm trying to do:
>> I have a lot of directories with a vast number of files, some of which I wish
>> to delete based on the month they were created. I've built a file from some
>> full directory listings that has all the files I wish to delete. (Just go with
>> me on this and don't suggest alternative methods of performing the task - I'm
>> simplfying the job so it can be explained more easily.)
>> A snippet of the file would look like this:
>> -rw-------  1 auser auser 3.7K Apr 12 10:11 auser/folder/new/127109228.file
>> -rw-------  1 auser auser  16K Apr 12 12:32 auser/folder/new/127110076.file
>> I would like to write either single-line perl command or a nano search and
>> replace to substitute the directory info and replace it with a file delete
>> so it would look like this:
>> rm -f auser/folder/new/127109228.file
>> rm -f auser/folder/new/127110076.file
>> Then I can just execute converted directory file as a shell script and
>> delete my files. But I'm having a brain-freeze on what a valid regex would
>> look like to match. Help??
>> Thanks again,
>> -- Dave Spencer, PageWeavers
>> _______________________________________________
>> vox-tech mailing list
>> vox-tech@lists.lugod.org
>> http://lists.lugod.org/mailman/listinfo/vox-tech
vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
O'Reilly and Associates
For numerous book donations.