के लिए जांचें, हालांकि मैं यह other question पढ़ रहा था, जिसमें नौकरी के लिए कुछ वास्तव में अच्छा रेगेक्स है लेकिन जहां तक मैं उनमें से कोई भी नहीं देख सकता हूं, बाश कमांड के साथ काम करते हैं क्योंकि बीएएसएच कमांड इस तरह के जटिल रेक्सग का समर्थन नहीं करते हैं।वैध लिंक (यूआरएल)
if echo "http://www.google.com/test/link.php" | grep -q '(https?|ftp|file)://[-A-Z0-9\+&@#/%?=~_|!:,.;]*[-A-Z0-9\+&@#/%=~_|]'; then
echo "Link valid"
else
echo "Link not valid"
fi
लेकिन इस ग्रेप -q काम नहीं करता है के रूप में काम नहीं करता है ...
संपादित, ठीक है मैं सिर्फ महसूस किया कि ग्रेप एक "विस्तारित-रेगुलर एक्सप्रेशन" था (ई) विकल्प ऐसा लगता है कि यह काम करता है। लेकिन अगर किसी के पास बेहतर/तेज़ तरीका है तो भी मैं इसके बारे में यहां से प्यार करूंगा।
आप इस प्रश्न पूछने के लिए अपनी प्रेरणा की जांच कर सकते हैं। प्रोग्रामर यूआरएल/यूआरआई और ई-मेल पते के स्थिर मूल्यांकन करने का प्रयास करते हैं जिन्हें आप सिंटैक्टिक रूप से वैध मान सकते हैं लेकिन आपको उनकी पहुंच के बारे में कुछ नहीं बताते हैं। उदाहरण के लिए, 'http: // www.example.com/bogus # fragment' हमेशा वाक्य रचनात्मक रूप से मान्य होगा और संभवतः (संभवतः) 404 त्रुटि लौटाएगा। – msw
इस फ़ंक्शन को यह जानने की आवश्यकता नहीं है कि लिंक काम करता है या नहीं, बस यह एक लिंक है। – Mint
एक यूआरएल क्या उपयोग करता है जो संसाधन को कभी नहीं ढूंढता है? जांच भी परेशान क्यों? – msw