first of misc questions....
Gary Kline
kline at tao.thought.org
Wed Apr 25 19:17:40 UTC 2007
On Wed, Apr 25, 2007 at 06:21:52AM -0500, Derek Ragona wrote:
> 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
Yep; this is the simple kind of script I had in mind first but
wasn't sure if/how it would work. Your one-liner works
"as-advertized", but then as you note, the timestamp is
changed!! (duh)... So it does make more sense to put the list
into a /tmp/<foo> file. Save typing when I re-edit.
thanks much, indeed,
gary
>
> -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.
>
--
Gary Kline kline at thought.org www.thought.org Public Service Unix
More information about the freebsd-questions
mailing list