我在跑沃尔奇自动循环显示我的壁纸。我有数百张壁纸。我创建了一个显示壁纸标题的小应用程序:
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'
我想删除末尾的撇号。我尝试了 cut --output-delimiter 的各种组合,但似乎无法让它起作用。
如果有人能指出一些只返回文件名的代码,我将不胜感激。
感谢所有人,
苦行僧
答案1
你可以尝试
basename `gsettings get org.gnome.desktop.background picture-uri` \'
假设您正在使用 BASH。
basename
将提取路径中的最后一个名称,该名称是使用 gsettings 命令生成的,放入反引号,以便将其视为命令而不是字符串。第二个参数是要basename
省略的终止字符,在本例中为撇号,必须使用反斜杠进行转义,这样它就不会在 shell 上开始引号。
答案2
如果您只想要文件名,请添加:
| sed 's/\'//'