這可能是一個簡單的問題,但我是bash和OSX的新手。我想要一個正則表達式,它在兩個句點之間返回一個字符串,後跟單詞LSSharedFileList。RegEx援助。 Bash在OSX上
例如「org.videolan.vlc.LSSharedFileList.plist.lockfile」只會返回「vlc」。
字符串的開頭和結尾可能會改變,但我只會需要「LSSharedFileList」前的句點之間的文本。
任何幫助將不勝感激。謝謝。
這可能是一個簡單的問題,但我是bash和OSX的新手。我想要一個正則表達式,它在兩個句點之間返回一個字符串,後跟單詞LSSharedFileList。RegEx援助。 Bash在OSX上
例如「org.videolan.vlc.LSSharedFileList.plist.lockfile」只會返回「vlc」。
字符串的開頭和結尾可能會改變,但我只會需要「LSSharedFileList」前的句點之間的文本。
任何幫助將不勝感激。謝謝。
$ echo org.videolan.vlc.LSSharedFileList.plist.lockfile | sed -e 's/.*\.\(..*\)\.LSSharedFileList.*/\1/'
vlc
這裏是你如何能做到這一點使用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
這兩個答案工作出色,所以,謝謝你們。我還使用「$ string | cut -d'管理了一個解決方法。」 -f4'「來查找定義''的最後'列'中的第四個。作爲分隔符。 –