shell 正则表达式 疑问,哪位大神给看下 如何解决
现在我的疑问是
#!c:/usr/bin/csh
set a = +2.4
set b= -2.4
set a1 = `echo "$a"|cut -c1`
PAUSE $a1 #############获得的是+
PAUSE $c
if( $a1 == "+")then
PAUSE "true"
else
PAUSE "false"
endif
#########为什么$a1跟“+”不相等,换成其他变量如set c = "+"还是不相等?用正则表达式该怎么写(匹配第一个符号 是+还是-,我用正则表达式还是错的)
if[ $a =~ ^+ ]then 一直返回true,谁知道 这个语法如何写,查了很多资料,没有chsell的正则,就是变量a第一个字符是+还是-
PAUSE "true"
else
PAUSE "false"
endif
谢谢,不吝赐教
相关推荐
Shell if中的正则表达式使用详解
由于工作需要对用户提交的数据进行验证,这是一个简单的日期正则验证实例,有需要了解的同学可参考。 shell中的if语句需要做一个正则判断,查了一下语法记录之。 DATEPATTERN=^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$ if [[ $STARTDATE =~ $DATEPATTERN ]] && [[ $ENDDATE =~ $DATEPATTERN ]]; then : else echo date format is invalid! exit; fi 常用的正则表达式 if [[ $file =~ 'start' ]] 或if [[
Linux Shell脚本之正则表达式
正则表达式RE 重要的文本处理工具:vim sed awk grep 1.什么是正则表达式? 正则表达式(regular expression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。 在大多数程序里,正则表达式都被置于两个斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式。 它将匹配被查找的行中任何位置出现的相同模式,在正则表达式中,元字符是重要的概念 匹配数字:1+$ ^:以xxx开头,+前面的对象出现一个或多个,$是以xxx结尾,[]里面的是匹配的模式 匹配mail:[a-z
shell编程 之 正则表达式
详细介绍了 shell编程 之 正则表达式,附有详细截图。
Shell脚本中通过正则表达式匹配IP地址
在运维场景下,我们经常需要在服务器上用正则表达式来匹配IP地址。 shell和其它编程语言一样,也可以使用正则分组捕获,不过不能使用 $1或\1这样的形式来捕获分组,可以通过数组${BASH_REMATCH}来获得,如${BASH_REMATCH[1]},${BASH_REMATCH[N]} 下面以ip=”121.0.2.2″为例,shell脚本代码如下(当然,你要做成更通用交互式的脚本,可以通过expect来实现): 代码如下: #!/bin/bash ip=”121.0.2.2″ if [[ $ip =~ ^([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0
Linux Shell脚本的编程之正则表达式
一 正则表达式与通配符 1 正则表达式是用在文件中匹配符合条件的字符串,正则是包含匹配,grep,awk,sed等命令可以支持正则表达式 2 通配符是用来匹配符合条件的文件名,通配符是完全匹配,ls,find,cp这些命令不支持正则表达式,所以只能用Shell自己的通配符来进行匹配了。 二 基础正则表达式 这里引用兄弟连的测试文本 1 * 前一个字符匹配0次或任意多次 grep “a*” test_rule.txt 匹配所有内容,包括空白行(由于*可以匹配0次) grep “aa*” test_rule.txt 匹配至少包含有一个a的行 grep “aaa*” test_rule.


系统维护与使用区
