Я запускаю wallch для автоматического переключения между моими обоями. У меня их сотни. Я создал небольшое приложение, которое отображает заголовок обоев:
export DISPLAY=:0 && /usr/bin/zenity --info --text="$(gsettings get org.gnome.desktop.background picture-uri | cut -c 41-)"
Без разреза вывод:
'file:///home/frank/Pictures/Wallpapers/Sitka_Harbor.jpg'
с разрезом, я получаю имя файла:
Sitka_Harbor.jpg'
Я хочу избавиться от конечного апострофа. Я пробовал различные комбинации среза --output-delimiter, но не могу заставить его работать.
Я был бы признателен, если бы кто-нибудь указал мне какой-нибудь код, который бы возвращал только имя файла.
Благодарю всех,
Садху
Вы можете попробовать
basename `gsettings get org.gnome.desktop.background picture-uri` \'
, если вы используете BASH.
basename
извлечет фамилию в пути, которая генерируется с помощью вашей команды для gsettings, вставляет обратные галочки, чтобы она воспринималась как команда, а не строка. Второй аргумент в basename
- это завершающие символы, которые вы хотите опустить, в данном случае это апостроф, который должен быть экранирован с помощью обратной косой черты, чтобы он не начинал кавычку на оболочке.
Если вам просто нужно имя файла, добавьте:
| sed 's/\'//'