पोस्ट किए गए अधिकांश उत्तर URL पर मजबूत नहीं हैं जिनमें क्वेरी स्ट्रिंग या लक्ष्य होते हैं, जैसे कि, उदाहरण के लिए, निम्नलिखित:
https://example.com/this/is/a/path?query#target
पायथन में अपने मानक पुस्तकालय में URL पार्सिंग है; इसे करने देना आसान है। उदाहरण के लिए,
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])
आप python3 -c
शेल स्क्रिप्ट में उपयोग के लिए इसे एक ही में कॉम्पैक्ट कर सकते हैं :
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])'
(आप पठनीयता के लिए भी स्क्रिप्ट को तोड़- '
मरोड़ कर रख सकते हैं, इससे आपको नई सुर्खियाँ मिलेंगी।)
बेशक, अब आपकी शेल स्क्रिप्ट में पायथन पर निर्भरता है।
(यदि मैं उन मामलों के बारे में थोड़ा अनिश्चित हूं जो उन मामलों को संभालने की कोशिश करते हैं जहां URL का पथ घटक मूल है ( /
); समायोजित करें / परीक्षण करें यदि आपके लिए यह मायने रखता है।)