LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 731|回复: 3

求教一个制表脚本

[复制链接]
发表于 2006-11-1 15:45:04 | 显示全部楼层 |阅读模式
文件 a.lst  的内容:
1
2
3
4
5
6
7
8
9

要把 a.lst 变成 b.lst , b.lst 的格式为:
1 4 7
2 5 8
3 6 9

也就是把 a.lst 的每3行变成 b.lst 的每一列,请大侠帮帮忙!
发表于 2006-11-2 10:06:00 | 显示全部楼层
  1. #!/bin/bash
  2. #filename:table.sh
  3. sourcefile=$1
  4. targetfile=$2
  5. distance=$3
  6. for ((i = 1; i <= distance; i++ ));do
  7.         count=1
  8.         res=""
  9.         for line in `cat $sourcefile`;do
  10.                 if ((count % distance == i % distance));then
  11.                         res="$res $line"
  12.                 fi
  13.                 count=$((count + 1))
  14.         done
  15.         echo $res >> $targetfile
  16. done
复制代码
命令:./table.sh filea fileb 3
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-2 14:19:23 | 显示全部楼层
非常感谢Iambitious!!
回复 支持 反对

使用道具 举报

发表于 2006-11-14 14:55:17 | 显示全部楼层
Try this :
awk '{ sum[NR%3] = sum[NR%3]$0" "} END{print sum[1]; print sum[2]; print sum[0]}' a.lst  > b.lst
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表