免费注册 查看新帖 |

Chinaunix

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

if中使用正则表达式的格式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-03 12:21 |只看该作者 |倒序浏览
打算在shell中加入一段if判断语句,要判断文件名满足某个特征,使用正则表达式:
比如,在程序中的某个部分,举例来说某个文件名为$file = '55start999.s'这个文件,
现在要判断这个文件名中是否含有start,如果有那么执行某个操作。不知道这个if语句如何使用正则表达式?
if [[ "$file" =~ '??' ]]
then
          ####do sth
else
           ####do sth

fi

请教高手,谢谢!

论坛徽章:
0
2 [报告]
发表于 2009-07-03 12:24 |只看该作者
if [[ "$file" =~ 'start' ]]
或if [[ "$file" =~ "start" ]]

论坛徽章:
0
3 [报告]
发表于 2009-07-03 12:36 |只看该作者

回复 #2 ywlscpl 的帖子

#!/usr/bin/ksh
file="10start11.s"
if [[ "$file" =~ "start" ]]
then
        echo "success"
else
        echo "failed"
fi

test.sh[3]: 0403-057 语法错误。位于行 3 : `=~' 不是期待的。   为啥报这个错?

论坛徽章:
0
4 [报告]
发表于 2009-07-03 12:41 |只看该作者
bash才支持[[

论坛徽章:
0
5 [报告]
发表于 2009-07-03 12:51 |只看该作者

回复 #4 ywlscpl 的帖子

那是用ksh该使用什么格式呢?

论坛徽章:
0
6 [报告]
发表于 2009-07-03 12:54 |只看该作者
ksh在test中应该不支持正则,用awk grep sed等工具实现吧
flag=`echo $file |awk '/start/'`
if [ "$flag" = "" ];then
else
fi
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP