Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1327110
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类:

2008-04-28 18:10:59

一个文件中有几组以空格隔开的整数:
$ cat foo
5 7 3 1 0
1 7 1 2 3
2 0 4 9 6
2 8 1 1 3
用下面的脚本gle从第二行对数字开始统计,与本列上一个数字比较,变大为G, 变小为L, 相等为E :
$ cat gle

#!/bin/bash
exec 3< $1
sed q "$1"
read -u3 -a next
while true
do
  declare -a prev=(`echo ${next[@]}`)
  read -u3 -a next
  i=0
  printf "%c " "${next[@]}"
  printf '\t'
  while [ $i -lt ${#next[@]} ]
  do
    # test ${next[i]} -gt ${prev[i]} && printf 'G '
    # test ${next[i]} -lt ${prev[i]} && printf 'L '
    # test ${next[i]} -eq ${prev[i]} && printf 'E '
    [[ "${next[i]}" -gt "${prev[i]}" ]] && printf 'G '
    [[ "${next[i]}" -lt "${prev[i]}" ]] && printf 'L '
    [[ "${next[i]}" -eq "${prev[i]}" ]] && printf 'E '
    let i+=1
  done
  printf '\n'
  if [ -z $next ]
  then
    break
  fi
done


输出:
$ gle foo
5 7 3 1 0      
1 7 1 2 3       L E L G G
2 0 4 9 6       G L G G G
2 8 1 1 3       E G L L L
阅读(2320) | 评论(0) | 转发(0) |
0

上一篇:我的 CFLAGS

下一篇:故障:dpkg was interrupted

给主人留下些什么吧!~~