2011-10-12 33 views
1

這可能是一個簡單的問題,但我是bash和OSX的新手。我想要一個正則表達式,它在兩個句點之間返回一個字符串,後跟單詞LSSharedFileList。RegEx援助。 Bash在OSX上

例如「org.videolan.vlc.LSSharedFileList.plist.lockfile」只會返回「vlc」。

字符串的開頭和結尾可能會改變,但我只會需要「LSSharedFileList」前的句點之間的文本。

任何幫助將不勝感激。謝謝。

+0

這兩個答案工作出色,所以,謝謝你們。我還使用「$ string | cut -d'管理了一個解決方法。」 -f4'「來查找定義''的最後'列'中的第四個。作爲分隔符。 –

回答

2
$ echo org.videolan.vlc.LSSharedFileList.plist.lockfile | sed -e 's/.*\.\(..*\)\.LSSharedFileList.*/\1/' 
vlc 
1

這裏是你如何能做到這一點使用bash參數擴展:

FOO="org.videolan.vlc.LSSharedFileList.plist.lockfile" 

# Strip off ".LSSharedFileList" and whatever follows 
BAR=${FOO%.LSSharedFileList*} 

# Strip off everything from the beginning up to the first period 
BAR=${BAR##*.} 

echo $BAR