Gary Kline wrote:
On Wed, Apr 25, 2007 at 06:21:52AM -0500, Derek Ragona wrote:At 02:29 AM 4/25/2007, Gary Kline wrote: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/myfilelistGuys,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!then you can: for i in `cat /tmp/myfilelist`;do vi $i;doneif 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;doneYep; this is the simple kind of script I had in mind first butwasn't sure if/how it would work. Your one-liner works "as-advertized", but then as you note, the timestamp ischanged!! (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
Don't forget my friendly, friend cut(1) (almost forgot that in my previous post). I think it's a lot more lightweight and faster than awk is; the only drawback is that delimiters are only 1 character wide, whereas heavier weight text processing tools can do multiple character search and replacements (sed, awk, perl, etc).
ls -l | cut -d ' ' -f 9 | xargs vi {} \; # change -f to meet your needs
-Garrett
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"
