Meine Regex wurde getestet (mit Online-Checkern) und funktioniert. Ich versuche, HTTP-Links aus einer Datei, aber speziell exklusive http Links mit einer Bild-Erweiterung (JPG, GIF) mit dieser;Warum schließt dieser Befehl grep Bilder nicht aus?
grep -Eo '(http|https|rtmp)://[a-zA-Z0-9:0-9./[email protected]&%|()[:blank:],;-]*' | grep -v '.(?:jpg|gif|png)'
Dies ist meine Datei, an der grep arbeitet;
LONDON Remote server cluster 88: taken, https://www.wiredcontent/rashida_opener_background2.jpg
http://www.8379f690ba57e0fdf8f944324a4453de67780/tsa.a3m
BRUSSELS: Hosted MPLS cluster
http://www.5b0e9bc72b989c87a9a70da7865dbb5b4aa9c086/tsa.a3m
PARIS: Hosted atrium access, https://i.gadgets360cdn.com/large/dell_UP3218K_1483646315000.gif
http://www.39415215319c9brt6b9c7d10238c19cc82e7f88b/tsa.a3m
PRAGUE: Main Office access,
http://www.e721f751ab0936706192cf15b4632889b38f131a/tsa.a3m
Ich möchte grep diese zurück:
http://www.8379f690ba57e0fdf8f944324a4453de67780/tsa.a3m
http://www.5b0e9bc72b989c87a9a70da7865dbb5b4aa9c086/tsa.a3m
http://www.39415215319c9brt6b9c7d10238c19cc82e7f88b/tsa.a3m
http://www.e721f751ab0936706192cf15b4632889b38f131a/tsa.a3m
Vielen Dank im Voraus.
UPDATE: Vatsug Antwort unten ist sehr hilfreich und funktioniert mit einer Datei.txt mit den Links in, aber wenn die Links von einer Variablen innerhalb eines Skripts geleitet werden, habe ich etwas wie folgt zu tun: 'Link = $ (printf "% s \ n" "$ zeile" | grep -Eo '(http | https): // [a-zA-Z0-9: 0-9 ./[email protected]&% |() [: leer:],; -] * '| grep -vP' (http | https | rtmp): // [a-zA-Z0-9: 0-9 ./[email protected]&% |()] : blank:],; -] * (jpg | png | gif) ') ' – manners