我們有一個小問題將不勝感激任何幫助。打印當前路徑的一部分
我們有以下路徑:
/root/dir1/dir2/dir3/file.sav
我們也有:
/root/dir1/dir2
我們想這樣做/root/dir1/dir2/dir3/file.sav
- /root/dir1/dir2
並獲得唯一dir3/file.sav
。
我們嘗試使用tr -d
但沒有成功。
我們有一個小問題將不勝感激任何幫助。打印當前路徑的一部分
我們有以下路徑:
/root/dir1/dir2/dir3/file.sav
我們也有:
/root/dir1/dir2
我們想這樣做/root/dir1/dir2/dir3/file.sav
- /root/dir1/dir2
並獲得唯一dir3/file.sav
。
我們嘗試使用tr -d
但沒有成功。
不需要外部工具。 Bash可以自己解決這個問題。使用${variable#substring}
可以打印一個子字符串從頭開始刪除的變量。例如:
$ PATH1=/root/dir1/dir2/dir3/file.sav
$ PATH2=/root/dir1/dir2
$ echo ${PATH1#${PATH2}/}
dir3/file.sav
工作很棒! :] *拍手鼓掌* –
只是提供其他候補......
bash
:
echo ${PATH1/${PATH2}\//}
sed
:
awk
:
awk -v var="$PATH2" '{sub(var"/","",$0)}1' <<< "$PATH1"
replace
:
replace "$PATH2/" "" <<< "$PATH1"
什麼是你想在一般做什麼?你是想剝離路徑中的前N個目錄,還是將最後一個目錄放在名稱前面,然後去除根目錄之前的許多目錄? – lurker