1、“^”是匹配以什么字符或字符串开头的,匹配正确返回1,否则返回0。
2、“$”是匹配以什么字符或字符串结尾的,匹配正确返回1,否则返回0。
3、“.”是匹配任意的单个字符,返回正确的为1,否则为0。
4、“[...]”是匹配中括号内的任意字符,如果匹配上返回1,否则返回0。
5、“[^...]”是匹配不出中括号内的任意字符,正确返回1,否则返回0。
注意事项:
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。
$ echo $a | awk -v RS=".html" '{if(length($0)>1){gsub("[^0-9]+","");print $0".html"}}'
1234.html
2333.html
不清楚正则匹配的条件(关键字)是什么,如有更详细的说明就更好了。
暂且只匹配了html,并且假设html的名称都是数字,而其他描述部分都是非数字。
显示内容:
$ echo "XCBNHTES1234.html,UHNGWWDD3333.html"
XCBNHTES1234.html,UHNGWWDD3333.html
选出文件名字:
$ echo "XCBNHTES1234.html,UHNGWWDD3333.html"| sed -r 's/[^1-9]*([1-9]+\.html)/\1/g'
1234.html3333.html
文件名之间加空格:
$ echo "XCBNHTES1234.html,UHNGWWDD3333.html"| sed -r 's/[^1-9]*([1-9]+\.html)/\1/g' | sed 's/html/html /g'
1234.html 3333.html
不知道你的详细需求,不知道还有什么特殊情况,仅供参考,谢谢!