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 -c
untuk 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.)