From: "Jesús Gabriel y Galán" Date: 2013-01-10T01:14:13+09:00 Subject: Re: One liner for filenames On Wed, Jan 9, 2013 at 5:00 PM, Peter Bailey wrote: > "Jesús Gabriel y Galán" wrote in post > #1091607: >> On Wed, Jan 9, 2013 at 4:09 PM, Robert Klemme >> wrote: >>>> ... >>>> >>>> I need to basically delete all of the files except for the first one, >>>> the one with the "_1" suffix at the end. Can I do that wiith a >>>> one-liner? >>> >>> ruby -r pathname -e 'Pathname.glob("*[^1].png").each(&:delete)' >> >> Careful, as this skips also filename_11.png, filename_21.png, etc. >> Building on this: >> >> ruby -r pathname -e 'Pathname.glob("*_{[^1],??}.png").each(&:delete)' >> >> Jesus. > > Excellent. Thanks. Hans is right, though. Dir.glob is unsorted. Is that > a problem here? No, because here we are using the glob facility to do all the filtering. In the other solution, there was the array returned from the glob that was being filtered, and so the order was important for the solution that removed the first entry in the array. Jesus.