1. 程式人生 > >shell ${} : 字串處理 擷取

shell ${} : 字串處理 擷取

方式1 ${}取字串

記憶方法:(3個字元鍵盤位置 #$%,#是從左向右、%是從右向左)
一個 # % 是匹配第一個,兩個 ## %% 是匹配最後一個

# 定義一個字元 file
file=/dir1/dir2/dir3/my.file.txt

# 我們可以用 ${} 分別替換獲得不同的值:
${file#*/} :拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最後一條 / 及其左邊的字串:my.file.txt
${file#*.} :拿掉第一個 .  及其左邊的字串:file.txt
${file##*.}:拿掉最後一個 .  及其左邊的字串:txt
${file%/*} :拿掉最後條 / 及其右邊的字串:/dir1/dir2/dir3 ${file%%/*}:拿掉第一條 / 及其右邊的字串:(空值) ${file%.*} :拿掉最後一個 . 及其右邊的字串:/dir1/dir2/dir3/my.file ${file%%.*}:拿掉第一個 . 及其右邊的字串:/dir1/dir2/dir3/my

方式2 :擷取

${varible:n1:n2} :從左邊數擷取變數varible從n1到n2之間的字串。
${varible:0-n1:n2}:從右邊數擷取變數varible從n1到n2之間的字串。

MYVAR="food|forthought.jpg"
echo
${MYVAR:0:3} #foo echo ${MYVAR:3} #d|forthought.jpg echo ${MYVAR:0-3:2} #jp echo ${MYVAR:0-3} #jpg

獲取檔案絕對路徑
$(readlink -f $f)