以矩阵格式显示数据?

时间:2010-11-24 16:13:09

标签: bash

我有这个文件data.txt,内容是:

100X00
20X0X0
3000XX
4X00XX

我希望以矩阵格式显示,如

    A    B    C    D    E
1             X         
2        X         X     
3                  X    X
4   X              X    X

我可以自由使用任何命令,例如sed / awk或grep。我目前的方法是:

a=0
echo -e "\tA\tB\tC\tD\tE"
while read line
    do a=$(($a+1));
    sed '{s/0/ /g}' data.txt
done < data.txt

当然不行。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

echo -e "\tA\tB\tC\tD\tE"
sed 's|.|&\t|g; s|\t0|\t|g; s|\t*$||' <data.txt

这似乎与您提供的输入样本一致。

编辑:

说明:

在每个字符后添加一个水平制表符(\ t),然后删除选项卡前面的那些零(因此不在第一列中),然后从该行的末尾删除任何制表符。

EDIT2:

请注意,与我的第一个答案相比,略有变化。我将把它的效果作为练习留给读者。