From owner-freebsd-questions@FreeBSD.ORG Wed Apr 25 07:50:25 2007 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 188E916A400 for ; Wed, 25 Apr 2007 07:50:25 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from smtp.infracaninophile.co.uk (ns0.infracaninophile.co.uk [81.187.76.162]) by mx1.freebsd.org (Postfix) with ESMTP id 52A7313C44B for ; Wed, 25 Apr 2007 07:50:24 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from lack-of-gravitas.thebunker.net (gateway.ash.thebunker.net [213.129.64.4]) (authenticated bits=0) by smtp.infracaninophile.co.uk (8.14.1/8.14.1) with ESMTP id l3P7nvct059723 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 25 Apr 2007 08:50:07 +0100 (BST) (envelope-from m.seaman@infracaninophile.co.uk) Authentication-Results: smtp.infracaninophile.co.uk from=m.seaman@infracaninophile.co.uk; sender-id=permerror; spf=permerror X-SenderID: Sendmail Sender-ID Filter v0.2.14 smtp.infracaninophile.co.uk l3P7nvct059723 Message-ID: <462F0824.5000107@infracaninophile.co.uk> Date: Wed, 25 Apr 2007 08:49:56 +0100 From: Matthew Seaman Organization: Infracaninophile User-Agent: Thunderbird 2.0.0.0 (X11/20070422) MIME-Version: 1.0 To: Gary Kline References: <20070425072914.GA65634@thought.org> In-Reply-To: <20070425072914.GA65634@thought.org> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-3.0 (smtp.infracaninophile.co.uk [81.187.76.162]); Wed, 25 Apr 2007 08:50:17 +0100 (BST) X-Virus-Scanned: ClamAV 0.90.2/3160/Wed Apr 25 06:28:45 2007 on happy-idiot-talk.infracaninophile.co.uk X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00, DKIM_POLICY_TESTING,DK_POLICY_SIGNSOME autolearn=ham version=3.1.8 X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on happy-idiot-talk.infracaninophile.co.uk Cc: FreeBSD Mailing List Subject: Re: first of misc questions.... X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2007 07:50:25 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 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/ 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 "vi"? Nothing simple works, so thanks for any > clues! > xargs(1) is your friend. Simply arrange for your awk script to print out the names of all the files you have selected to edit, then pipe the result into xargs. Like so: ls -l| awk '{if ($6 == "Apr" && $7 == 19 || $6 == "Mar" && $7 == 26 ) print $9}' | xargs vi This does assume that the file names you are using do not contain spaces, quote marks, brackets or other characters of syntactical significance to the shell. In that case you could use something like this: find . -type f \( -mtime 6 -o -mtime 29 \) -print0 | xargs -0 vi where find's '-print0' and the '-0' flag to xargs make the commands produce and consume respectively a null separated list of filenames. Unfortunately with find(1) there doesn't seem to be a way of expressing an absolute date / time -- all you can do is the time difference between now and when you want (which defaults to 'number of days' but can be set to use various other time units. I can think of a couple of ways of calculating that, but personally I'd find it cleaner to just roll the whole thing into a small perl script which identified the files in question and forked off an instance of vi(1) to do the editing. Cheers, Matthew - -- Dr Matthew J Seaman MA, D.Phil. Flat 3 7 Priory Courtyard PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate Kent, CT11 9PW, UK -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.3 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGLwgk3jDkPpsZ+VYRAxaaAJ9H4q3vD4qqBo+FijEs+PqmaR0kaQCgidpA kXOmJIpsODutFhLIvIoJpEE= =fNoc -----END PGP SIGNATURE-----