shell 正则表达式 截取字符串长度?Linuxshell中如何从路径名提取指定字符串

发布时间:2023-11-29 16:09:55
发布者:网友

大家好,感谢邀请,今天来为大家分享一下shell 正则表达式 截取字符串长度的问题,以及和Linuxshell中如何从路径名提取指定字符串的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

一、请教会linux shell脚本的=~是什么意思

[[]]:条件判断语句$i:i是个变量,$i代表读取变量i的值=~:正则匹配,用来判断其左侧的参数是否符合右边的要求^:以什么开头^[0-9]:以数字开头^[0-9]+:以数字开头,且数字有1到多个——加号表示1到多个$:以什么结尾^[0-9]+$:以1到多个数字开头,且结尾。——意即:只能有数字,不能有其他字符&&:左边的条件满足,右边的命令才会执行。echo1:屏显1(在屏幕上显示,也叫打印)所以:[[$i=~^[0-9]+$]]&&echo1的意思是:变量i的值是纯数字,就屏显1

二、Linuxshell中如何从路径名提取指定字符串

1、这个不需要正则式效率差,难理解。使用两次shell扩展就可以了。#!/bin/basha="$1"a="${a##*-}"#从开头删除到顺数最后一个减号。a="${a%\.*}"#从结尾删除到倒数第一个小数点。

2、echo"$a"脚本保存为a.sh执行命令./a.sh“/home/lxy/hhhhh-a.bbb.cc.d”请把参数用引号括住。得到a.bbb.cc说明:${parameter#pattern}和${parameter##pattern}掐头,#是最小匹配,##是最大匹配,将变量从开头匹配pattern,最后扩展为原变量值去掉匹配的内容后的内容。

3、${parameter%pattern}和${parameter%%pattern}去尾,%是最小匹配,%%是最大匹配,将变量从结尾匹配pattern,最后扩展为原变量值去掉匹配的内容后的内容。

OK,关于shell 正则表达式 截取字符串长度和Linuxshell中如何从路径名提取指定字符串的内容到此结束了,希望对大家有所帮助。

——————————————小炎智能写作工具可以帮您快速高效的创作原创优质内容,提高网站收录量和各大自媒体原创并获得推荐量,点击右上角即可注册使用

小炎智能写作