Skip site navigation (1)Skip section navigation (2)
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>