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)


3 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. hello,

    perl -i -pe '$_="$_\n" if /SUCCESS/ ' JavaReport.txt

    should probably do the job

    ReplyDelete
    Replies
    1. Yes! That's what I was looking for! That short hand references. Pretty cool stuff! Thanks!

      Delete