linux sh 字符截取,shell字符截断

本文介绍了如何在Bash shell中使用basename和dirname工具进行文件路径的字符截断,并展示了使用特殊符号如'%'和'#'进行简单字符截取的方法。此外,还演示了如何通过这些技巧在路径中提取文件名、目录路径和扩展名。
摘要由CSDN通过智能技术生成

如果是文件路径的进行字符截断可以用basename和dirname这两个工具

basename可以从一个文件路径中截一个文件名

$ basename /root/lnmp/lnmp_install.sh

lnmp_install.sh

dirname可以从一个文件路径中截到一个目录路径

$ dirname /root/lnmp/lnmp_install.sh

/root/lnmp

不使用外部工具进行字符截断

bash有自带的功能来对变量进行字符截断,一般使用"#", "##", "%%", "%", "*" 组合来实现。

$ teststring=www.linuxeye.com

$ echo ${teststring#*.}

linuxeye.com

$ echo ${teststring##*.}

com

$ echo ${teststring%.*}

www.linuxeye

$ echo ${teststring%%.*}

www

"#"表示从字符开始部分除去,一旦匹配则立即除去

"##"表示从字符开始部分除去,会搜整个字符串最长的和的匹配来除去

"%"表示从字符结束的部分除去,一旦匹配成公则立即除去

"%%"表示从字符结束的部分开始除去,会搜寻整个字符穿中最长的匹配来除去

"*"统配符

不利用工具取文件名和目录

$ echo ${dir##*/}

lnmp_install.sh

$ echo ${dir%/*}

/root/lnmp

$ echo ${dir##*.}

sh

在路径中取文件名: ${path##*/} (与basename相同功能)

在路径中取目录路径: ${path%/*} (与dirname相同功能)

取文件的扩展名: ${path##*.}

Sat Jul 20 15:27:35 CST 2013

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值