${}
[root@node01 ~]# file=/dir1/dir2/dir3/my.file.txt[root@node01 ~]# echo ${file#*/}dir1/dir2/dir3/my.file.txt
刪掉第一個(gè) / 及其左邊的字符串
[root@node01 ~]# echo ${file##*/}my.file.txt
刪掉最后一個(gè) / 及其左邊的字符串
[root@node01 ~]# echo ${file#*.}file.txt
刪掉第一個(gè) . 及其左邊的字符串
[root@node01 ~]# echo ${file##*.}txt
刪掉最后一個(gè) . 及其左邊的字符串
[root@node01 ~]# echo ${file%/*}/dir1/dir2/dir3
刪掉最后一個(gè) / 及其右邊的字符串
[root@node01 ~]# echo ${file%%/*} 空值
刪掉第一個(gè) / 及其右邊的字符串
[root@node01 ~]# echo ${file%.*}/dir1/dir2/dir3/my.file
刪掉最后一個(gè) . 及其右邊的字符串
[root@node01 ~]# echo ${file%%.*}/dir1/dir2/dir3/my
刪掉第一個(gè) . 及其右邊的字符串
記憶的方法為:
# 是 去掉左邊(鍵盤上#在 $ 的左邊)
#去掉左邊第一個(gè)及左邊的字符串
##去掉最后一個(gè)及左邊的字符串
%是去掉右邊(鍵盤上% 在$ 的右邊)
%去掉最后一個(gè)及右邊的字符串
去掉第一個(gè)及右邊的字符串
單一符號(hào)是最小匹配;兩個(gè)符號(hào)是最大匹配
單一符號(hào)是最小匹配;兩個(gè)符號(hào)是最大匹配
[root@node01 ~]# echo ${file:0:5}/dir1
提取最左邊的 5 個(gè)字節(jié)
[root@node01 ~]# echo ${file:5:5}/dir2
提取第 5 個(gè)字節(jié)右邊的連續(xù)5個(gè)字節(jié)
也可以對(duì)變量值里的字符串作替換:
[root@node01 ~]# echo ${file/dir/path}/path1/dir2/dir3/my.file.txt
將第一個(gè)dir 替換為path
[root@node01 ~]# echo ${file//dir/path}/path1/path2/path3/my.file.txt
將全部dir 替換為 path
總結(jié)
以上所述是小編給大家介紹的Linux shell 提取文件名和目錄名的方法,希望對(duì)大家有所幫助!
新聞熱點(diǎn)
疑難解答
圖片精選