shell: transpose file

2016-07-28  本文已影响12人  W有来有去

Questions:

Given a text file file.txt, transpose its content.
You may assume that each row has the same number of columns and each field is separated by the ' ' character.
For example, if file.txt has the following content:

name age
alice 21
ryan 30

Output the following:

name alice ryan
age 21 30

Solution:

awk '{
   for (f = 1; f <= NF; f++) { a[NR, f] = $f } 
 }
 NF > nf { nf = NF }
 END {
   for (f = 1; f <= nf; f++) {
       for (r = 1; r <= NR; r++) {
           printf a[r, f] (r==NR ? RS : FS)
       }
   }
}' file.txt
上一篇 下一篇

猜你喜欢

热点阅读