Skip to content

Instantly share code, notes, and snippets.

@jerodsanto
Created December 13, 2011 16:00
Show Gist options
  • Save jerodsanto/1472671 to your computer and use it in GitHub Desktop.
Save jerodsanto/1472671 to your computer and use it in GitHub Desktop.
Printing the $PATH with each entry on a separate line
# using ruby:
$ echo $PATH | ruby -e 'STDIN.read.split(":").each { |l| puts l }'
$ echo $PATH | ruby -e 'print STDIN.read.gsub(":", "\n")'
# Using sed: I would expect this to work, but it does not
$ echo $PATH | sed 's/:/\n/g'
@gerhard
Copy link

gerhard commented Dec 14, 2011

@sant0sk1 awk is a little gem. Nothing beats it when processing large amounts of text. Single process, no optimizations whatsoever:

DATASET:
33GB (original) > 129MB (extracted)

Records extracted:
12,253,389

TIME:
real    15m37.961s
user    7m43.820s
sys 0m35.540s

That was on 4 x SAS as a software RAID5. With a few tweaks, that would become a 5min jobbie. Now imagine running that on SSDs or shared memory : ).

My most recent pride is awk scripts wrapped in shell commands, running as upstart jobs, leveraging redis pipelines to feed graphite with metrics every n seconds. All minitested, sub second for the whole test suite. I'm getting a hard-on just talking about it :D.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment