博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell里 截取字符串
阅读量:4038 次
发布时间:2019-05-24

本文共 993 字,大约阅读时间需要 3 分钟。

按指定的字符串截取
1、第一种方法:
${varible##*string} 从左向右截取最后一个string后的字符串
${varible#*string}从左向右截取第一个string后的字符串
${varible%%string*}从右向左截取最后一个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
“*”只是一个通配符可以不要

例子:

$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg

2、第二种方法:${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。

可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在 bash 中输入以下行:

$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga

这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。

牛b例子:

#!/bin/bash

#截取字符串
#path=ss/usr/share/src/root/home/admin
path=ss/usr/share/src/root/home/admin/src/add
echo $path
echo ${path%src*} #从右向左截取第一个 src 后的字符串
echo ${path}
echo ${path%/*}
echo ${path%%/*}从右向左截取 最后一个 / 后的字符串
echo ${path#*/}从左向右截取第一个 / 后的字符串
echo ${path##*/}从左向右截取最后一个 / 后的字符串
echo ${path:3}
echo ${path:6:60}截取变量path从前三个字符串
echo ${#path}计算 path变量 一共有几个字符串
echo ${path/root/kyo}把path变量里的第一个root字符串,替换为 kyo字符串
echo ${path//s/m}把path变量里的所有的s字符,替换为 m 字符

echo ${path}

转载地址:http://uipdi.baihongyu.com/

你可能感兴趣的文章
Docker跨服务器迁移
查看>>
VMware安装centos虚拟机 通过NAT与主机互通并能上网
查看>>
expdp/impdp 数据库迁移详细过程
查看>>
oracle 误删除表的几种恢复方法
查看>>
hadoop、hbase、hive、spark分布式系统架构详细搭建过程
查看>>
Hadoop与Hbase各版本对应关系
查看>>
impdp时ORA-39126: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS [TABLE_STATISTICS]
查看>>
OracleMTSRecoveryService 启动失败
查看>>
oracle job如何定时执行带参数的存储过程
查看>>
oracle12c存在pdb情况下的data guard 详细搭建
查看>>
oracle 查询自动补全日期以及相应的数据
查看>>
Centos7.4 zabbix3.4.8源码安装详细过程
查看>>
python 自动抓取网页新闻以及图片并存储到数据库中
查看>>
python监控系统(flask+python+html)
查看>>
oracle从备份集中恢复归档日志方法
查看>>
Oracle跨版本与跨平台执行传输表空间(XTTS)
查看>>
fatal: unable to access 'https://github.com/danfengcao/binlog2sql.git/': SSL connect error
查看>>
Mysql误操作后使用binlog2sql快速回滚
查看>>
sql loader导出数据和导入数据(sqlldr)
查看>>
RedoLog Checkpoint 和 SCN关系
查看>>