Linux shell 提取文件名和目錄名
阿新 • • 發佈:2018-08-14
使用 body oca oot txt htm roo 而不是 字符
Linux shell 提取文件名和目錄名
轉載自:https://www.cnblogs.com/nzbbody/p/4391802.html
一、使用正則表達式篩選
\({}用於字符串的讀取,提取和替換功能,可以使用\){} 提取字符串
- 提取文件名
[root@localhost log]# var=/dir1/dir2/file.txt
[root@localhost log]# echo ${var##*/}
file.txt
- 提取後綴
[root@localhost log]# echo ${var##*.}
txt
- 提取不帶後綴的文件名,分兩步
[root@localhost log]# tmp=${var##*/} [root@localhost log]# echo $tmp file.txt [root@localhost log]# echo ${tmp%.*} file
- 提取目錄
[root@localhost log]# echo ${var%/*}
/dir1/dir2
二、使用內置函數篩選
使用文件目錄的專有命令basename和dirname
- 提取文件名
註意:basename是一個命令,使用\((), 而不是\){}
[root@localhost log]# echo $(basename $var)
file.txt
- 提取不帶後綴的文件名
[root@localhost log]# echo $(basename $var .txt)
file
- 提取目錄
[root@localhost log]# dirname $var /dir1/dir2 [root@localhost log]# echo $(dirname $var) /dir1/dir2
Linux shell 提取文件名和目錄名