Date: Wed, 25 Apr 2007 06:21:52 -0500 From: Derek Ragona <derek@computinginnovations.com> To: Gary Kline <kline@tao.thought.org>, FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: first of misc questions.... Message-ID: <6.0.0.22.2.20070425061655.0264d980@mail.computinginnovations.com> In-Reply-To: <20070425072914.GA65634@thought.org> References: <20070425072914.GA65634@thought.org>
next in thread | previous in thread | raw e-mail | index | archive | help
At 02:29 AM 4/25/2007, Gary Kline wrote: > Guys, > > This is an awk-type question. Hopefully a one-liner. If I > need to use #!/usr/bin/awk and a BEGIN/END (or whatever it is), > that's okay... > > I want to do an ls -l in a /home/kline/<directory> and find and > edit files that are dated (let's say) Apr 19 or Mar 26. This > works to print $9 the filenames. > > ls -l| awk '{if ($6 == "Apr" && $7 == 19 || $6 == "Mar" && $7 > == 26 ) print $9}' > > What's the final part to get awk to vi $9? Or another pipe and > xargs and <what> "vi"? Nothing simple works, so thanks for any > clues! I would use a simple approach incase you need to re-edit the list since editing will change file times: ls -l| awk '{if ($6 == "Apr" && $7 == 19 || $6 == "Mar" && $7 == 26 ) print $9}' > /tmp/myfilelist then you can: for i in `cat /tmp/myfilelist`;do vi $i;done if you don't want to use a file, you can do in one shell loop too, but again this will change your file modification times: for i in `ls -l| awk '{if ($6 == "Apr" && $7 == 19 || $6 == "Mar" && $7 == 26 ) print $9}'`;do vi $i;done -Derek -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. MailScanner thanks transtec Computers for their support.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6.0.0.22.2.20070425061655.0264d980>