Удаление символа только если он есть как раз и есть описание раскрытия параметров.
$ var=path.
$ echo "$var ${var%.}"
path. path
В этом случае точка не является специальной (точка является специальной в регулярном выражении ).
Другой шаблон можно удалить с помощью%/*
:
$ var=openOffice.org/ozm
$ echo "${var%/*}"
openOffice.org
Для удаления обоих:
$ var=roonstr./ozm
$ var=${var%/*}
$ var=${var%.}
$ echo "$var"
roonstr
Конечно, для работы с исходным файлом быстрее использовать sed для файла.
Только не забудьте поставить точку (в кавычки, чтобы она соответствовала буквально, иначе это означает :любой символ ).
$ sed 's,/.*,,;s,\.$,,' file
Образец записи на рабочем столе.
[Desktop Entry]
Version=1.0
Name=Unipro UGENE
Comment=Unipro UGENE is a cross-platform visual environment for DNA and protein sequence analysis.
Exec=/home/samuel/ugene-1.11.5/ugene -ui
Path=/home/samuel/ugene-1.11.5/
Icon=/usr/share/icons/Humanity/apps/32/access.svg
Terminal=false
Type=Application
Categories=Utility;Development;
Записи на рабочем столе для приложений или файлы.desktop обычно представляют собой комбинацию ресурсов метаинформации и ярлыка приложения. Эти файлы обычно находятся в /usr/share/applications/ или /usr/local/share/applications/ для приложений, установленных в системе -для всей системы, или ~/.local/share/applications/ для пользовательских -приложений.. Пользовательские записи имеют приоритет над системными записями.