Sebagian besar jawaban yang diposting tidak kuat pada URL yang berisi string atau target kueri, seperti, misalnya, yang berikut:
https://example.com/this/is/a/path?query#target
Python memiliki parsing URL di pustaka standarnya; lebih mudah membiarkannya melakukannya. Misalnya,
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])
Anda bisa memadatkannya menjadi satu python3 -cuntuk digunakan dalam skrip shell:
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])'
(Anda juga dapat menjaga agar skrip tetap tidak dapat dibaca. 'Anda dapat memasukkan baris baru.)
Tentu saja, sekarang skrip shell Anda memiliki ketergantungan pada Python.
(Saya sedikit tidak yakin tentang jika yang mencoba menangani kasus-kasus di mana komponen jalur URL adalah root ( /); sesuaikan / uji jika itu penting bagi Anda.)