免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1864 | 回复: 5
打印 上一主题 下一主题

请教一个文件字段处理的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-19 22:27 |只看该作者 |倒序浏览
10可用积分
有下面格式的文件:
A;1
A;2
A;3
B;1
B;2
C;1
C;2
C;3
C;4
C;5

想根据选择ABC找到对应的那些行,然后打印出所有的第二个字段让用户再选择
比如选择C,屏幕打印出1,2,3,4,5,实际选择会很多,要每行多个打印多行,然后再等待用户选择

怎么作呢?

论坛徽章:
1
处女座
日期:2014-12-23 17:59:27
2 [报告]
发表于 2008-10-19 22:37 |只看该作者
case + read

论坛徽章:
0
3 [报告]
发表于 2008-10-20 00:21 |只看该作者
echo -n "Make your choice: "
read choice
case $choice in
'A')
awk -F\; '$1=="A"{ print $2 }' ufile
;;
'B')
awk -F\; '$1=="B"{ print $2 }' ufile
;;
'C')
awk -F\; '$1=="C"{ print $2 }' ufile
;;
esac

[ 本帖最后由 xwmhmily 于 2008-10-20 01:38 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-10-20 09:43 |只看该作者
挺清楚

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
5 [报告]
发表于 2008-10-20 10:36 |只看该作者
  1. menu="menufile"
  2. echo -n "Make your choice: "
  3. read choice
  4. if [ "$choice" \> '@' -a "$choice" \< '[' ]; then
  5.   awk -F';' '$1=="'"$choice"'"{ print $2 }' $menu
  6.   #TODO
  7. else
  8.   echo "Error choice"
  9. fi
复制代码

论坛徽章:
0
6 [报告]
发表于 2008-10-20 12:07 |只看该作者
while(( 1 ))
do
echo -n "Make your choice: "
read choice
case $choice in
'A')
  for num in $(awk -F";" '$1=="A"{ print $2 }' ufile)
    do
         (( i++ ))
         (( i%4 ==0 )) && echo $num || echo -n $num" "#每行显示4个数字
          ........你再read读数字.......
  break
;;
'B')
  awk -F";" '$1=="B"{ print $2 }' ufile
  break
  ;;
'C')
  awk -F";" '$1=="C"{ print $2 }' ufile
  break
  ;;
*)
   echo "Error input,please input again"
  continue
  ;;
esac
done
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP