Protokollnamen aus Website-Link entfernen

Protokollnamen aus Website-Link entfernen

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.comnur 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

Wie wäre es mitawkmit FOption und Textumleitung?

awk -F'^http[s]?://' '{print $2}' fileName > outputFile

Odersedmit iOption

sed -i s/'http[s]\?:\/\/'// fileName

Antwort3

Hier ist ein einfacher awk-Aufruf:

$ awk -F// '{print $NF}' fileName

-FGibt das Feldtrennzeichen an. $NFDruckt 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

verwandte Informationen