Próbuję wyodrębnić katalog aktualnie odtwarzanego utworu w Quodlibet, aby użyć go do wyświetlenia okładki albumu w conky.
W bieżącym pliku QL ~/.quodlibet/current
znajduje się wiersz, który podaje pełną ścieżkę aktualnie odtwarzanego utworu, ale potrzebuję tylko katalogu. Czy istnieje sposób, w jaki mogę zignorować ostatnią część ścieżki za pomocą grep?
Na przykład, gdybym miał plik o nazwie /music/album/03-song.ogg
, chciałbym, aby grep wyświetlał wszystko przed 0
(lub w 1/2/3/4
przypadku dłuższych albumów).
Nie mam pojęcia, czy mogę użyć tego do tego, czego potrzebuję, ale nadal warto wiedzieć na przyszłość.
Możesz to zrobić,
grep
przesyłając dane wyjściowesed
i używając wyrażeń regularnych w celu wyodrębnienia żądanych informacji.Możesz przeczytać
sed
i jego składnię wyrażeń regularnych ze strony podręcznika.źródło
grep
.grep 'whatever' ~/.quodlibet/current | sed 'whatever2'
jest równoważne zsed '/whatever/!d; whatever2' ~/.quodlibet/current
. Możesz wpisać dowolną liczbę wyrażeń wewnątrzsed
i będzie to estetycznie równoważne z potokowaniem, ale (w zależności od tego, co robisz) bardziej wydajne.Tylko dlatego, że lubię sed :) ... genialne rozwiązanie love @ slhck!
źródło
źródło