RegEx Assistance.Bash на OSX - PullRequest
       0

RegEx Assistance.Bash на OSX

1 голос
/ 13 октября 2011

Это, вероятно, простой вопрос, но я новичок в bash и OSX.Мне бы хотелось, чтобы выражение регулярного выражения возвращало строку между двумя периодами, за которой следовало бы слово LSSharedFileList.

Например, «org.videolan.vlc.LSSharedFileList.plist.lockfile» будет возвращать только «vlc».

Начало и конец строки могут измениться, но мне когда-либо понадобится текст только между периодами, предшествующими "LSSharedFileList".

Любая помощь будет принята с благодарностью.Спасибо.

Ответы [ 2 ]

2 голосов
/ 13 октября 2011
$ echo org.videolan.vlc.LSSharedFileList.plist.lockfile | sed -e 's/.*\.\(..*\)\.LSSharedFileList.*/\1/'
vlc
1 голос
/ 13 октября 2011

Вот как вы можете сделать это, используя расширение параметров 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...