chhotii: (caffeine)
chhotii ([personal profile] chhotii) wrote2013-12-10 02:39 pm
Entry tags:

UNIX geek challenge

UNIX Geek Of The Day bragging rights to whoever can propose the best solution to this problem: Identify all text files in the current directory which contain the string "jpg" on two consecutive lines. Using the typical command-line tools such as grep, not by writing a program. Extra points if the location (line number) of these consecutive lines of interest are output.

Posted via LiveJournal app for Android.

ext_106590: (waffle off)

[identity profile] frobzwiththingz.livejournal.com 2013-12-11 01:21 am (UTC)(link)
Ok, Chip's got a good answer... Here's a truly horrible one:

for I in *; do test -f "$I" && awk ' BEGIN { last = 0 ; status = 1 } { if (/jpg/) { if (last == 1) { print $0, "line number ", NR ; status = 0 } else last = 1 } else last=0 } END { if (status == 1) exit 1 }' < "$I" && echo " file $I matches"; done

Don't use this. There's *got* to be a horrible bug in there somewhere. Unless you hate your workplace. In that case, make sure it gets into some important automated build process.

[identity profile] whitebird.livejournal.com 2013-12-11 03:18 am (UTC)(link)
You are a nicely evil person. :)

[identity profile] chhotii.livejournal.com 2013-12-11 10:22 am (UTC)(link)
So totally NOT what I was looking for.