Monday, November 19, 2018

Perl, Awk or other?

I had some quickie output from an ad hoc Ansible command. I love Ansible! The data was quick to acquire and accurate. But the readability was not optimal. "Hmmm...", I thought, "It'd be good enough if it just separated the data elements with a space." Actually, this comes up a lot with my quickie ad hoc Ansible reports so I do what I always do: Perl!


That worked perfectly but it was so simple I thought it should be a one-liner. BTW, I really enjoyed Peteris Krumins' Sed, Awk and Perl one-liner books. I bought them all in PDF and then bought the pretty No Starch Press version of Perl One-Liners (makes a great coffee table book - I just pick it up and open it to any page and I'm intrigued - Fun!) So, I took a stab at it. It worked perfectly the first time but it was really just my same program in one-liner format. So here it is. If you have a more elegant solution let me know.



  perl -pe 'if (m/SUCCESS/) {print "\n$_"} else {print $_} ' JavaReport.txt
  
P.S. The I tried Awk:
 
 awk '/SUCCESS/ { print "\n" } {print}' JavaReport.txt  
  
(although this isn't quite right)


Thursday, November 1, 2018

Being Lazy

Just discovered Array::Utils!  Wonderful!  To think I was going to write a "find unique elements in an array" myself.  Nope!

use Array::Utils qw(:all);
my @unique = unique(@a, @b);