linux sh 字符截取,shell字符截断
如果是文件路徑的進行字符截斷可以用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
總結
以上是生活随笔為你收集整理的linux sh 字符截取,shell字符截断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux解压tar到目录,在Linux
- 下一篇: linux gdb#039;查找寄存器地