myVar = designers/Atom-CMP-d0b3695.zip
只有部分字符串需要從上面的變量中提取。使用bash/sh腳本從字符串中刪除特定和特殊字符
myDesiredVar = CMP-d0b3695
我已經嘗試了幾種方法,但仍找不到合適的方法來解決這個問題?任何快速的幫助將真正apprecciated。
myVar = designers/Atom-CMP-d0b3695.zip
只有部分字符串需要從上面的變量中提取。使用bash/sh腳本從字符串中刪除特定和特殊字符
myDesiredVar = CMP-d0b3695
我已經嘗試了幾種方法,但仍找不到合適的方法來解決這個問題?任何快速的幫助將真正apprecciated。
myVar=designers/Atom-CMP-d0b3695.zip
myDesiredVar=$(echo "$myVar" |grep -oP '\-\K[^.]+')
echo $myDesiredVar
CMP-d0b3695
使用grep
與perl regex
:\K
是背後的正面外觀。和[^.]+
的意思是,任何東西直到看到字面點。
var=$(command....)
這被稱爲命令替換。希望現在轉儲是有用的。
使用bash
字符串操作:
s='myVar = designers/Atom-CMP-d0b3695.zip'
r="${s%.*}"
r="${r#*-}"
輸出:
echo "$r"
CMP-d0b3695
的sed解決方案:
res=$(sed 's/^[^-]*-\([^.]*\).*/\1/' <<< "$myVar")
echo $res
CMP-d0b3695
請解釋如果可能的話,而不是僅僅傾銷代碼。謝謝! – Difster