in reply to Five Ways to Reverse a String of Words (C#, Perl 5, Perl 6, Ruby, Haskell)

A compacted awk one liner...
echo " one two three four " | awk '{n=split($0,A);S=A[n];{for(i= +n-1;i>0;i--)S=S" "A[i]}}END{print S}'
  • Comment on Re: Five Ways to Reverse a String of Words (C#, Perl 5, Perl 6, Ruby, Haskell)
  • Download Code

Replies are listed 'Best First'.
Re^2: Five Ways to Reverse a String of Words (C#, Perl 5, Perl 6, Ruby, Haskell)
by runrig (Abbot) on Sep 09, 2008 at 16:03 UTC
    Here's another awk solution (different strategy, and slightly shorter when compacted - Update: this reverses every line, and if your's did the same, i.e, without the END block, it would still be shorter than this...oh well):
    #!/bin/awk -f { for (i=1; i<=NF/2; i++) { t=$i $i = $(NF-i+1) $(NF-i+1)=t } print }