Gönderilen cevapların çoğu, örneğin aşağıdakiler gibi sorgu dizeleri veya hedefler içeren URL’lerde sağlam değildir:
https://example.com/this/is/a/path?query#target
Python'un standart kütüphanesinde URL ayrıştırması var; Bunu yapmasına izin vermek daha kolay. Örneğin,
from urllib import parse
import sys
path = parse.urlparse(sys.stdin.read().strip()).path
print("/" if not path or path == "/" else path.rsplit("/", 1)[-1])
Bunu python3 -c
bir kabuk betiğinde kullanmak için tek bir parçaya sığdırabilirsiniz:
echo 'https://example.com/this/is/a/path/componets?query#target' \
| python3 -c 'from urllib import parse; import sys; path = parse.urlparse(sys.stdin.read().strip()).path; print("/" if not path or path == "/" else path.rsplit("/", 1)[-1])'
(Ayrıca, okunabilirlik için komut dosyasını da bozabilirsiniz. Yeni '
satırlar koymanıza izin verir.)
Tabii ki, şimdi kabuk betiğiniz Python'a bağımlı.
(URL'nin yol bileşeninin kök ( /
);