列表

详情


194. 转置文件

给定一个文件 file.txt,转置它的内容。

你可以假设每行列数相同,并且每个字段由 ' ' 分隔。

 

示例:

假设 file.txt 文件内容如下:

name age
alice 21
ryan 30

应当输出:

name alice ryan
age 21 30

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
# Read from the file file.txt and print its transposed content to stdout.

bash 解法, 执行用时: 459 ms, 内存消耗: 3.8 MB, 提交时间: 2024-05-28 00:38:25

# Read from the file file.txt and print its transposed content to stdout.
# 获取第一行,然后用wc来获取列数
COLS=`head -1 file.txt | wc -w`
# 使用awk依次去输出文件的每一列的参数,然后用xargs做转置
for (( i = 1; i <= $COLS; i++ )); do
    # 这里col就是在代码里要替换的参数,而它等于$i
    awk -v col=$i '{print $col}' file.txt | xargs
done

bash 解法, 执行用时: 68 ms, 内存消耗: 3.5 MB, 提交时间: 2019-04-06 20:17:35

# Read from the file file.txt and print its transposed content to stdout.
row=`head -n1 file.txt | wc -w`

for i in `seq 1 $row`
do
    echo `cut -d' ' -f$i file.txt`
done

上一题