shell脚本的小问题

Q446512799 2011-11-29 10:02:26
test.txt中数据如下

4--好友
friend fghjf
friend yyte
friend awe
other trff
other utbb
5--找出最大年龄
nxy age 22
nyq age 19
nyj age 20
nyt age 26
cp age 19
xxx age 29
6--

#查找好友个数
if ($0 ~ /^4--/) {
getline;
i=0;
while ($0 !~ /^5--/){
if ($0 ~ /^friend/) {
i++;
}
getline;
}
my_friend = i;
}

#最大年龄
if ($0 ~ /^5--/) {
getline;
max=0;
while ($0 !~ /^6--/) {
if ( $3 > max )
{
max = $3;
}
getline;
}
my_age_max = max;
}

能查找好友个数,就是最大年龄这段有问题,删掉整个程序能运行出正确结果之前弄的能运行,但max还是=0,现在是不能运行了0.0求指导
...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q446512799 2011-11-29
  • 打赏
  • 举报
回复
awk '
BEGIN {
OFS = ",";
}
FILENAME ~ /.message/ {
。。。。。。中间过程入上
}

END {
print FILENAME;
print my_name,my_id,my_school,my_study,my_class >> "mymessage";
print my_name,my_friend >> "myfrind";
if (my_age_max > 0)
print my_name,my_age_max >> "max_age";
} ' $*
Q446512799 2011-11-29
  • 打赏
  • 举报
回复
$0代表完整的一行信息,$n代表第n个字段,应该是shell里面的awk命令
小笨同学 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 woailp___2005 的回复:]
引用 2 楼 xxyxxb 的回复:
C/C++ code

if ( $2 > max )
{
max = $2;
}

兄弟,$2是age段,$3才是数字段哦
[/Quote]
那$0和$1分别是什么段?用的是什么shell?
Q446512799 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xxyxxb 的回复:]
C/C++ code

if ( $2 > max )
{
max = $2;
}
[/Quote]
兄弟,$2是age段,$3才是数字段哦
小笨同学 2011-11-29
  • 打赏
  • 举报
回复

if ( $2 > max )
{
max = $2;
}
Q446512799 2011-11-29
  • 打赏
  • 举报
回复
木有人来啊
Q446512799 2011-11-29
  • 打赏
  • 举报
回复
原来这里没有问题错误在别的地方

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧