免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: bclly
打印 上一主题 下一主题

[文件目录] bash中,如何准确判断某类型文件存在 [已解决] [复制链接]

论坛徽章:
1
巨蟹座
日期:2014-06-10 23:03:47
31 [报告]
发表于 2014-07-16 11:27 |只看该作者
你理解为扩展的正则表达式就好回复 31# bclly


   

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
32 [报告]
发表于 2014-07-16 11:27 |只看该作者
回复 31# bclly
那段代码我这边执行这样的。
  1. [masonzhu@rat122 xxx]$ cat exists_pattern_files.sh
  2. #!/bin/bash

  3. pattern=`awk '{for(i=1;i<=length($0);i++){c=substr($0,i,1);if(c~/[A-Za-z]/)s=s"["toupper(c)tolower(c)"]";else s=s""c};print s}'<<<"$1"`

  4. exit `[ -e $pattern ]`


  5. [masonzhu@rat122 xxx]$ ./exists_pattern_files.sh *.ttf && echo '*.TTF exists!' || echo '*.TTF not exists!'
  6. *.TTF exists!
  7. [masonzhu@rat122 xxx]$ ls|grep -i "ttf"
  8. msyhbd.TTF
复制代码

论坛徽章:
0
33 [报告]
发表于 2014-07-16 12:12 |只看该作者
回复 25# Herowinter

没,签到得的,我积分已经不是帖子数2倍了嘛,那边灌水、不对发帖讨论问题,一帖只有1分。
头天签到的时候没说签到俩字,于是没发徽章,简直……
我不说脏话。

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
34 [报告]
发表于 2014-07-16 12:24 |只看该作者
回复 34# 用户名注册后不能更改

我被黑了15个,我因为缺赌本,全选15个世界杯徽章,
想典当750分,结果一分未得,白扣了我15个章。。。
   

论坛徽章:
0
35 [报告]
发表于 2014-07-16 12:27 |只看该作者
回复 35# Herowinter

搞不懂这些,我还是默默地灌水吧……

论坛徽章:
1
摩羯座
日期:2014-07-16 14:52:12
36 [报告]
发表于 2014-07-16 13:04 |只看该作者
回复 33# Herowinter


    我测试了,也可行!
  1. #!/bin/bash
  2. ##this  is  pattern.sh
  3. pattern=`awk '{for(i=1;i<=length($0);i++){c=substr($0,i,1);if(c~/[A-Za-z]/)s=s"["toupper(c)""tolower(c)"]";else s=s""c};print s}'<<<"$1"`

  4. exit `[ -e $pattern ]`

  5. #!/bin/bash
  6. ##this is go.sh
  7. bash pattern.sh *.[Tt][Tt][Ff] && echo "字体文件存在" || echo "字体文件不存在"
复制代码
喜大普奔!

字体后缀有3种:
包含TureType字体的OpenType文件后缀名为.TTF
包含PostScript字体的文件后缀名为.OTF
包含一系列TrueType字体的字体包文件,那么后缀名为.TTC

要把这三个后缀都加入,那怎么处理?
是不是这样:
*.[Tt][Tt][Ff] *.[Oo][Tt][Ff] *.[Tt][Tt][Cc]

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
37 [报告]
发表于 2014-07-16 13:25 |只看该作者
回复 37# bclly
那就不要用上面那个脚本了,这么写简单点,如果3种文件都要存在的话。
  1. if [ -f *.[Tt][Tt][Ff] ]&&[ -f *.[Oo][Tt][Ff] ]&&[ -f *.[Tt][Tt][Cc] ];then
  2.     echo "exist";
  3. fi
复制代码

论坛徽章:
0
38 [报告]
发表于 2014-07-16 14:18 |只看该作者
回复 38# Herowinter

[Tt][Tt][CcFf]?

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
39 [报告]
发表于 2014-07-16 14:19 |只看该作者
回复 39# 用户名注册后不能更改

你那样只存在一个ttc或ttf就true了,楼主的逻辑好像要3个文件都存在。
   

论坛徽章:
1
摩羯座
日期:2014-07-16 14:52:12
40 [报告]
发表于 2014-07-16 14:37 |只看该作者
回复 40# Herowinter


    如果只要其中存在一个是不是只要改成这种就行了?
  1. if [ -f *.[Tt][Tt][Ff] ] || [ -f *.[Oo][Tt][Ff] ] || [ -f *.[Tt][Tt][Cc] ];then
  2.     echo "exist";

  3. fi
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP