2013-09-29 2 views
1

мне нужно поменять местами поля текстового файла, содержащего:реверса поле с AWK

Computer science is fun 
I also enjoy math 
But I don't like science 

Мне нужна awk для вывода:

line 1: Computer science is fun 
line 1 reversed: fun is science Computer 
line 2: I also enjoy math 
line 2 reversed: math enjoy also I 

.... ... и так далее. Это то, что я прямо сейчас:

BEGIN {print "start"} 
{ 
    for(i=NF; i>=1; i--) 
    { 
     printf "line %d: %s\n", NR , $0; 
     printf "line %d: reversed: %s", NR, $i; 
    } 
} 

ответ

2

Вы были близки:

BEGIN {print "start"} 
{ 
    printf "line %d: %s\n", NR , $0 
    printf "line %d: reversed:", NR 
    for(i=NF; i>=1; i--) 
    { 
     printf " %s", $i 
    } 
    print "" 
} 

Выше предполагается, что вы не заботитесь о белом пространстве между полями ,

+1

Удивительный! благодаря! – mrplow911

1

Try:

awk '{for (i=NF; i>0; i--) printf("%s ",$i);print ""}' input.txt