Linux shell 提取文件名和目錄名的方法
${}
[root@node01 ~]# file=/dir1/dir2/dir3/my.file.txt
[root@node01 ~]# echo ${file#*/}
dir1/dir2/dir3/my.file.txt
刪掉第一個 / 及其左邊的字符串
[root@node01 ~]# echo ${file##*/}
my.file.txt
刪掉最后一個 / 及其左邊的字符串
[root@node01 ~]# echo ${file#*.}
file.txt
刪掉第一個 . 及其左邊的字符串
[root@node01 ~]# echo ${file##*.}
txt
刪掉最后一個 . 及其左邊的字符串
[root@node01 ~]# echo ${file%/*}
/dir1/dir2/dir3
刪掉最后一個 / 及其右邊的字符串
[root@node01 ~]# echo ${file%%/*} 空值
刪掉第一個 / 及其右邊的字符串
[root@node01 ~]# echo ${file%.*}
/dir1/dir2/dir3/my.file
刪掉最后一個 . 及其右邊的字符串
[root@node01 ~]# echo ${file%%.*}
/dir1/dir2/dir3/my
刪掉第一個 . 及其右邊的字符串
記憶的方法為:
# 是 去掉左邊(鍵盤上#在 $ 的左邊)
#去掉左邊第一個及左邊的字符串
##去掉最后一個及左邊的字符串
%是去掉右邊(鍵盤上% 在$ 的右邊)
%去掉最后一個及右邊的字符串
去掉第一個及右邊的字符串
單一符號是最小匹配;兩個符號是最大匹配
單一符號是最小匹配;兩個符號是最大匹配
[root@node01 ~]# echo ${file:0:5}
/dir1
提取最左邊的 5 個字節(jié)
[root@node01 ~]# echo ${file:5:5}
/dir2
提取第 5 個字節(jié)右邊的連續(xù)5個字節(jié)
也可以對變量值里的字符串作替換:
[root@node01 ~]# echo ${file/dir/path}
/path1/dir2/dir3/my.file.txt
將第一個dir 替換為path
[root@node01 ~]# echo ${file//dir/path}
/path1/path2/path3/my.file.txt
將全部dir 替換為 path
總結
以上所述是小編給大家介紹的Linux shell 提取文件名和目錄名的方法,希望對大家有所幫助!
相關文章
shell查找某字符串在某文件中出現(xiàn)行數(shù)的方法
這篇文章主要介紹了shell查找某字符串在某文件中出現(xiàn)行數(shù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
linux 比較兩個文件夾diff不同 (diff命令, md5列表)
這篇文章主要介紹了linux 比較兩個文件夾diff不同 (diff命令, md5列表),比較文件夾diff,可以直接使用diff命令,也可以比較文件md5列表,下面通過實例給大家介紹下,感興趣的朋友跟隨腳本之家小編一起學習吧2018-05-05
Shell腳本函數(shù)傳遞參數(shù)的實現(xiàn)方法
本文主要介紹了Shell腳本函數(shù)傳遞參數(shù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
Idea使用Bashsupport插件編輯Shell腳本的方法
這篇文章主要介紹了Idea插件之——Bashsupport編輯Shell腳本的相關知識,功能非常齊全有檢查錯誤并且還可以在idea中直接運行shell腳本,本教程帶領大家一步步演示插件的安裝和配置,需要的朋友可以參考下2021-05-05

