免费注册 查看新帖 |

Chinaunix

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

[文件目录] shell脚本输出一行两列及空行问题?排序,求大神解答? ... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-04-22 13:12 |只看该作者 |倒序浏览
shell脚本内容:
#!/bin/sh
var1=1
myfunc()
{
        for x in $(ls)
        do
                if [ -f "$x" ];then      #判断是不是文件
                        echo ;           #本意打印文件名
                elif [ -L "$x" ];then    #判断是不是link文件
                        echo ;           #本意打印link
                else                  #判断其他类型文件夹
      
         cd "$x";               # 进入文件夹      
      var1=$[var1+1];    #var1 变量表示 传入目录下的第几层目录
      if [ 2 -eq $var1 ];   #目前2 代表 第2层
      then
              ls
       tree |grep files |awk '{print $3}'  #打印这个目录包括子目录包含的文件数量
      
      fi
                        myfunc;                   #递归 用ls列出的所有文件进行判断,是不是文件夹,是文件夹就再次进入文件夹直到没有可进的文件夹,进行ls ,tree
                        cd ..                     #返回上层
    var1=$[var1-1];   #返回上层减1
                fi
        done

}
if [ -z "$1" ]
then
DIR="$PWD"
echo $DIR
else
DIR="$1"          #传入目录
cd $PWD/$1   #进入目录
myfunc
fi
exit 0
终端命令:
[root@cs /]# ./com.sh /data/pacsdata/2015/04/16/CT
输出结果:
968376
20










968186
229
问题1:中间空行问题怎么处理?问题2:结果需要一行两列
比如:
968376 20
968186 229
问题3:如果加个排序该怎么写?求大神解答?

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2015-04-22 13:21 |只看该作者
能说说原始需求是什么不?

论坛徽章:
0
3 [报告]
发表于 2015-04-22 13:29 |只看该作者
回复 2# 关阴月飞
原始需求:对比列出文件名及该文件名下图片数量
一个是从数据库导出的表字段,一个是原始目录里的
ACCESSIONNUMBER        NUM_OF_IMAGES
969017                                            8
968743                                            8
968788                                            8
968739                                            4
968810                                            8
968958                                            8
968438                                            8
968774                                            8
这个是数据库导出的。

这个是原始目录下的/data/pacsdata/2015/04/16/CT/01153463

需要的结果是跟数据库列出的格式相同。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
4 [报告]
发表于 2015-04-22 16:44 |只看该作者
968376
20
这两个数字分别代表什么意思?
它们分别是由哪条命令得到的结果?

如果是由 tree |grep files |awk '{print $3}' 得到的,请分别给出下面两个命令的结果:
  1. tree
  2. tree |grep files
复制代码

论坛徽章:
0
5 [报告]
发表于 2015-04-24 10:19 |只看该作者
回复 4# Shell_HAT


谢谢,问题基本已解决。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2015-04-24 10:49 |只看该作者
回复 5# qhuan30


    代码发出来给大家分享一下吧

论坛徽章:
0
7 [报告]
发表于 2015-04-24 12:53 |只看该作者
回复 6# Shell_HAT
  1. echo $(ls;tree |grep files |awk '{print $3}')
复制代码
其实跟您的思路差不多
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP