Shell-Script
sed + 從路徑中刪除第一個目錄
我需要從路徑中刪除第一個目錄
sed
,(反向 pf 是做什麼basename
的)。例如
echo "/mnt/VPfig/Amer/AR4/Celtel/files/COM.txt" | sed ...
我應該得到:
/VPfig/Amer/AR4/Celtel/files/COM.txt
嘗試:
echo "/mnt/VPfig/Amer/AR4/Celtel/files/COM.txt" | sed 's|^/[^/]*||'
這給了我:
/VPfig/Amer/AR4/Celtel/files/COM.txt
它查找第一個
/
後跟盡可能多的 non-/
,然後用空字元串替換它們。
在 POSIX 外殼中:
$ x='/mnt/VPfig/Amer/AR4/Celtel/files/COM.txt' $ printf "/%s\n" "${x#/*/}" /VPfig/Amer/AR4/Celtel/files/COM.txt
解釋
參數擴展 刪除路徑的
${x#/*/}
前導組件,其中兩個/
s 將其包圍,並將printf
前導/
返回。