我有这个文件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
当然不行。有人可以帮我这个吗?
答案 0 :(得分:0)
echo -e "\tA\tB\tC\tD\tE"
sed 's|.|&\t|g; s|\t0|\t|g; s|\t*$||' <data.txt
这似乎与您提供的输入样本一致。
编辑:
说明:
在每个字符后添加一个水平制表符(\ t),然后删除选项卡前面的那些零(因此不在第一列中),然后从该行的末尾删除任何制表符。
EDIT2:
请注意,与我的第一个答案相比,略有变化。我将把它的效果作为练习留给读者。