全国咨询热线:18720358503

shell 标识符串实际操作(长短,搜索,更换)详细说

类别:媒体报道 发布时间:2021-03-16 浏览人次:

海纳建网站系统软件cms    点一下:96  归属于:linux shell
拷贝编码 编码以下:
工作中中标识符串实际操作举例说明
filename='/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg'
#下边是应用shell标识符串实际操作
buName1=${filename#*/jobs/} #除去'/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg'作为前缀获得'CnClickstat/DFSLoader/loader.cfg'
buName1=${buName1%%/*} #除去'CnClickstat/DFSLoader/loader.cfg'后缀名获得'CnClickstat'
echo $buName1

#下边用awk获得必须的标识符串內容
buName2=`echo $filename | awk -F / '{printf("%s", $5)}'`;
echo $buName2

#下边应用cut获得必须的标识符串內容
buName3=`echo $filename | cut -d / -f 5`;
echo $buName3

之上均能得到結果:CnClickstat
标识符串实际操作举例说明完毕


在做shell批处理命令程序情况下,常常会涉及到到标识符串有关实际操作。有许多指令句子,如:awk,sed都可以以做标识符串各种各样实际操作。实际上shell内嵌一系列产品实际操作标记,能够做到相近实际效果,大伙儿了解,应用內部实际操作符会省去起动外界程序等時间,因而速率会十分的快。

一、分辨载入标识符串值

配对以前全部以varprefix开始开展申明的自变量


添加了“*” 并不是含意是: 自然, 假如自变量var早已被设定得话, 那麼其值便是$var.

[ ~]$ echo ${abc-'ok'}
ok
[ ~]$ echo $abc

[ ~]$ echo ${abc='ok'}
ok
[ ~]$ echo $abc
ok


假如abc 沒有申明“="还会继续给abc取值。

[ ~]$ var1=11;var2=12;var3=
[ ~]$ echo${!v@}
var1 var2 var3
[ ~]$ echo ${!v*}
var1 var2 var3

${!varprefix*}与${!varprefix@}类似,能够根据自变量名作为前缀标识符,检索早已界定的自变量,不管是不是为空值。

二、标识符串实际操作(长短,载入,更换)


假如$string的后缀名配对$substring,那麼就用$replacement来替代配对到的$substring


表明:"* $substring”能够是一个正则表达式表述式.

1.长短

[ ~]$ test='I love china'
[ ~]$ echo ${#test}
12
${#自变量名}获得标识符串长短

2.提取字串

[ ~]$ test='I love china'
[ ~]$ echo ${test:5}
e china
[ ~]$ echo ${test:5:10}
e china
${自变量名:起止:长短}获得子标识符串

3.标识符串删掉

[ ~]$ test='c:/windows/boot.ini'
[ ~]$ echo ${test#/}
c:/windows/boot.ini
[ ~]$ echo ${test#*/}
windows/boot.ini
[ ~]$ echo ${test##*/}
boot.ini
[ ~]$ echo ${test%/*}
c:/windows
[ ~]$ echo ${test%%/*}
${自变量名#substring正则表达式表述式}从标识符串开始刚开始配置substring,删掉配对上的表述式。
${自变量名%substring正则表达式表述式}从标识符串末尾刚开始配置substring,删掉配对上的表述式。
留意:${test##*/},${test%/*} 各自是获得文档名,或是文件目录详细地址非常简单方式。

4.标识符串更换

[ ~]$ test='c:/windows/boot.ini'
[ ~]$ echo ${test///}
c:windows/boot.ini
[ ~]$ echo ${test////}
c:windowsboot.ini

${自变量/搜索/更换值}一个“/”表明更换第一个,”//”表明更换全部,当搜索抽出现了:”/”请加转义符”/”表明。

三、特性较为

在shell中,根据awk,sed,expr等都可以以完成,标识符串所述实际操作。下边大家开展特性较为。
[ ~]$test='c:/windows/boot.ini'
[ ~]$ time for i in $(seq 10000);doa=${#test};done;
real 0M0.173s
user 0M0.139s
sys 0M0.004s
[ ~]$ time for i in $(seq 10000);do a=$(expr length$test);done;
real 0M9.734s
user 0M1.628s

速率相距上千倍,启用外界指令解决,与内嵌实际操作符特性相距十分大。在shell程序编写中,尽可能用内嵌实际操作符或是涵数进行。应用awk,sed相近会出現那样結果。
Yorking Alan

推荐阅读

shell 标识符串实际操作(长短,搜索,更换)详细说

海纳建网站系统软件cms 点一下:96 归属于:linux shell拷贝编码 编码以下:工作中中标识符串实际操作举例说明 filename='/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg' #下边是应用shell标识符串实...

2021-03-16
[智唯互联网 ★ 五一主题活动] 51建网站提升有特

[智唯互联网 ★ 五一主题活动] 51建网站提升有特惠啦公布 | 已阅: | 创作者:智唯网编 | | 共 0 条评价智唯互联网 五一营销 1、H5建网站营销推广版 3800 元,送 3 个月网络运营营销推广,...

2021-03-16
网站seo提升其长尾词排行危害要素有什么

网站seo提升其长尾词排行危害要素有什么公布 | 已阅: | 创作者:智唯网编 | | 共 0 条评价长尾关键词词是一个网站访问量来源于的关键方式在之一,许多人都挤破脑壳想提升长尾关键词...

2021-03-16
互联网营销推广:SEO提升那样做可让搜索引擎排

网站进行提升一直见面到搜索引擎排名,而搜索引擎排名却一直会出现十分大的波动,这让很多的seo优化工作中工作人员都十分的苦恼。在进行SEO提升的状况下要做出一定的改善,要不...

2021-03-16
公司域名为何必须办理备案?

公司域名为何必须办理备案?公布 | 已阅: | 创作者:智唯网编 | | 共 0 条评价网站为何要办理备案?哪些的网站才必须办理备案呢?许多人对这2个难题会出现很多疑惑,而且全一段时间刚...

2021-03-16
互动交流营销推广系统软件

互动交流营销推广系统软件协助公司构建一个详细闭环控制营销推广的互动交流营销推广服务平台,处理客户总流量获得难,营销推广成本费高,外接服务平台多维度护难,浏览量用户...

2021-03-16
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信