GREP a list of files for multiple strings on multiple lines

Grep is most definitely not the most exciting tool to talk about. One of the challenges that I recently faced was to list a bunch of text files only with a specific phrase.

For the sake of context, I was looking through emails of course bookings. Luckily, I know that the courses are prefixed with the word COURSE: and the names. After saving all of the files in a directory it was a case of running this command:

grep -l "COURSE: Course 1" *

Nice and simple. I could then find out which ones were booking Course 2:

grep -l "COURSE: Course 2" *

So far so good. The problem I now had was that I wanted to know exactly how many had booked BOTH courses. The courses aren’t on the same line so it’s not so straight forward but there’s a very simple way to find those pesky files.

grep -l "COURSE: Course 1" * | xargs grep -l "COURSE: Course 2"

By piping the file names from the first result into the argument of the next grep – it was easy to find the files that had both courses booked. You can chain this with the pipe as many times as you need to.

Finally, if you’re feeling really swish, then you might want to know how many matches there are rather than list the files:

grep -l "COURSE: Course 1" * | xargs grep -l "COURSE: Course 2" | wc -l

If you’re looking for some tricks to using grep to match (or not match!) strings, then you should check out this article over at The Geek Stuff.

Get Ripple to work in Linux

As RIM plough forward and deliver a cascade of development tools – one of the key tools is the Ripple Emulator. The Ripple Emulator allows you to simulate a mobile device in Chrome or Chromium and debug it easily. It’s a great app for creating HTML5 apps.

Unfortunately for us Linux users, we have had the short straw as a quick peek over at the BlackBerry site reveals that there is only a download for Windows or Mac.

Not to be put off – I figured that the code must be pretty much the same for both systems and decided that I’d get it working in Linux. Here’s my howto for getting Ripple working with Ubuntu 12.04 Continue reading Get Ripple to work in Linux