[ Home  |  FAQ-Related Q&As  |  General Q&As  |  Answered Questions ]


    Search the Q&A Archives


I have a variable length line and would like to resort the...

<< Back to: comp.lang.awk FAQ

Question by Unixtrekkor
Submitted on 7/10/2003
Related FAQ: comp.lang.awk FAQ
Rating: Not yet rated Rate this question: Vote
I have a variable length line and would like to resort the items such that the last item is the second and all other items move accordingly.  For example:

input:    a b c
output:   a c b

input:    a b c d
output:   a d b c

input:    a b c d e
output:   a e b c d

I tried using split to create an array and then store the items into a new array with the new order.  However, I'm not making much progress.  The first and last items print but nothing else.  Thanks for any assistance.


Answer by obrienpx
Submitted on 8/21/2003
Rating:  Rate this answer: Vote
Try:

awk '/^/ { NF > 1 ? out = $1 " " $NF : out = $NF
           for (i = 2; i < NF; i++) out = out " " $i
           print out
         }' xxx

If file xxx looks like (the fist line is empty":

a
a b
a b c
a b c d
a b c d e

then running the above produces

a
a b
a c b
a d b c
a e b c d

 

Your answer will be published for anyone to see and rate.  Your answer will not be displayed immediately.  If you'd like to get expert points and benefit from positive ratings, please create a new account or login into an existing account below.


Your name or nickname:
If you'd like to create a new account or access your existing account, put in your password here:
Your answer:

FAQS.ORG reserves the right to edit your answer as to improve its clarity.  By submitting your answer you authorize FAQS.ORG to publish your answer on the WWW without any restrictions. You agree to hold harmless and indemnify FAQS.ORG against any claims, costs, or damages resulting from publishing your answer.

 

FAQS.ORG makes no guarantees as to the accuracy of the posts. Each post is the personal opinion of the poster. These posts are not intended to substitute for medical, tax, legal, investment, accounting, or other professional advice. FAQS.ORG does not endorse any opinion or any product or service mentioned mentioned in these posts.

 

<< Back to: comp.lang.awk FAQ


[ Home  |  FAQ-Related Q&As  |  General Q&As  |  Answered Questions ]

© 2008 FAQS.ORG. All rights reserved.