Ich habe eine Liste mit n (n ist bekannt) URLs. Wie kann ich den Protokollnamen aus der URL entfernen?
Z. B.: von https://xyz.com
, ich möchte xyz.com
nur einen Teil abrufen.
Antwort1
Mit GNU grep und PCRE-Matching,
grep -oP 'https://\K\S+' file
Dadurch werden alle Nicht-Leerzeichen nach "https://" ausgegeben.
Antwort2
Antwort3
Hier ist ein einfacher awk-Aufruf:
$ awk -F// '{print $NF}' fileName
-F
Gibt das Feldtrennzeichen an. $NF
Druckt das letzte Feld.
Möglicherweise müssen Sie // in Anführungszeichen setzen.
Antwort4
Verwenden vonschneiden: Funktioniert mit oder ohne Präfix, da cut auch Zeilen ohne Trennzeichen druckt
echo 'https://myserver.com' | cut -d '/' -f 3
# prints myserver.com
Sie können eine Schleife verwenden, um dies über mehrere Zeilen innerhalb einer Datei auszuführen:
for line in $(cat input_file.txt); do
echo "${line}" | cut -d '/' -f 3
done
Aus der Manpage „cut“ -f, --fields=LIST wählt nur diese Felder aus; druckt auch alle Zeilen, die kein Trennzeichen enthalten, sofern die Option -s nicht angegeben ist