力扣解题-194转置文件

题目

给定一个文件 file.txt,转置它的内容。
你可以假设每行列数相同,并且每个字段由 ' ' 分隔。

示例:
假设 file.txt 文件内容如下:
name age
alice 21
ryan 30

应当输出:
name alice ryan
age 21 30

解题

思路:

  • 利用awk记录二维表,在END部分做转置
  • %s,表示一个字符串

代码:

# Read from the file file.txt and print its transposed content to stdout.
awk '{
    for (i = 1; i <= NF; i++) {
        a[i,NR] = $i
    }
}
END {
    for (i = 1; i <= NF; i++) {
        for (j = 1; j <= NR; j++) {
            printf "%s", a[i,j]
            if (j < NR) {
                printf " "
            }
        }
        if (i < NF) {
            print ""
        }
    }
}' \
file.txt
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容