read a if [[ $a =~ /\-?[0-9][0-9.]+/]] ; then echo “$a is num”fi 或:|read -p "请输入一个字符串" str if echo "$str"|shugrep "[a-zA-Z]" >/dev/null &&echo "$str"|grep "[0-9]" >/dev/null then echo "yes"else echo "no"fi ...
一,正则表达式 w匹配数字、字母、下划线 egrep "roow" user //找roo后面是数字、字母、下划线的字符串 s 匹配空格、tab键 egrep "roos" user //找roo后面是1个空格或者tab键打出来的空格的字符串,如果没有 就不输出 二,sed其他指令 a行下追加 i行上添加 c替换整行 sed 'a 666' user //所有行的下...
大家在处理数据文件的时候,可能会遇到这个问题,shell 对字符串进行处理,如果字符串 长度不足3位,需要左边自动补0。比如:12,自动补齐为 012解决的方法有两种,一种是shell的pringf命令,另一种是使用神器awk :
正则表达式了解一下就知道了,这个是匹配正、负整数的一个表达式,并且允许 0 出现在前面的数字。可以用下面的语句做测试:[seesea@UC ~]$ if expr "-3" : '-\?[0-9]\+$' >/dev/null; then echo "match OK"; fi;match OK [seesea@UC ~][seesea@UC ~]$ if expr "3" : '-\?[...
!/bin/bash while true;do read -p "Enter an integer:" num if [ $num -eq 100 ];then break fi done exit 0 因为你没说大于,小于后做什么,只说了一个等于100时退出。那我只能认为不管我输入什么数,还是重复输入,直到我输入100时退出。
1、^是匹配字符串开始的意思,[0-9]只要不是数字都不要。2、~ +的意思的^[0-9]的范围里匹配一次以上+ $是匹配结束符。touch -t "201109021200.00" tempfile 使用引号内的时间戳在当前目录建立一个叫tempfile的文件 find -name "*VIRTUALID*" -newer tempfile -exec cp {} /home/wbft/...
digit就是数字的意思,望文生义,[[:digit:]] 表示数字类,匹配一位数字。grep的-E选项表示使用扩展的正则表达式,-o表示仅提取正则匹配的内容,而不是返回整行内容。awk 'BEGIN{FS="=";OFS="="} NR==267{$3+=1;print}' data.mk 也可以,awk相当于一门小型语言,里面的语法类似C语法,...
grep '^[0-9]\{1,3\}$' test.txt | grep '^[1-9]'如果是变量 echo $var | grep '^[0-9]\{1,3\}$' | grep '^[1-9]'表示行尾 这个正则不匹配 12a 这样的字符串 你的变量内容是什么样的看 我用来测试的 test.txt 的内容:123 321 123212 001 010 100 10000 0011 10101 1...
if ((num % 2 == 0))then echo "$num 是偶数"else echo "$num 是奇数"fi 以上是一个简单的脚本,通过read命令从命令行接收用户输入的数字,然后使用if语句判断数字是否是偶数,如果是则输出"$num 是偶数",否则输出"$num 是奇数"。在shell中,使用"$"符号引用一个变量的值。因此,如果用户...
1、grep -o '[0-9]\{2\}' a.log可以获取2位数数字 2、实例:!/bin/sh i=1 for x in $(grep -o '[0-9]\{2\}' a.log);do y[$i]=$x echo ${y[i]} ((i++))done ((sum=${y[1]}+${y[2]}+${y[3]}+${y[4]}))echo sum=$sum ...