Wie komme ich daraus:
randomcollege-nt\user90
dazu:
user90
benutzen sed
?
command-line
sed
text-processing
Roboman1723
quelle
quelle
man the_command_name
Sie ihn ein und Sie erhalten eine hilfreiche Bedienungsanleitung für den Befehl. Sie können auch zu www.google.com gehen und "befehlsname tutorial" eingeben. Dort finden Sie zahlreiche schrittweise Anleitungen.sed
Sie unter: grymoire.com/Unix/Sed.htmlAntworten:
Ich würde ein einfaches verwenden
grep
, um zu suchenuser90
:Wenn user90 nicht konstant ist, bevorzugen Sie diesen Befehl:
Zum Schluss benutzen Sie
sed
, um die Datei an Ort und Stelle zu bearbeiten:Oder um alle möglichen Benutzerkonten abzugleichen:
quelle
grep -F
die ganze Zeichenfolge.Sie analysieren Text, um den Benutzernamen aus einer
domain\username
Zeichenfolge zu extrahieren , wahrscheinlich aus Windows. Die meisten der obigen Antworten beziehen sich nur auf Ihre spezifische Beispielzeichenfolge.Der beste Weg, dies zu tun, ist die Verwendung von Regex in sed, um das zu extrahieren, was danach kommt
\
. So würden Sie es machen:Das passt zu allem (
.*
) bis zu einem Backslash (hier werden wir es maskieren, also ist es\\
), dann passt es zu allem nach dem Backslash (.*
), macht es aber zu einer Erfassungsgruppe (dh, wir müssen Klammern um es wickeln, aber wir müssen auch maskieren) sie, so\(.*\)
). Jetzt, da wir , was kommt nach dem\
in der Zeichenfolge als Capture - Gruppe, wir drucken , indem sie sie mit der Referenzierung\1
.Sie können den obigen
sed
Befehl mit jedem Domain-Namen verwenden, nicht unbedingtrandomcollege-nt
.quelle
Ein anderer
sed
:oder POSIXly:
quelle
sh
Funktion. pubs.opengroup.org/onlinepubs/009604599/utilities/…Ich weiß, dass Sie sed verwenden möchten, aber ich würde etwas anderes verwenden ...
quelle
Ist das die Frage?
wenn das sting randomcollege-nt nicht kontaminiert ist, benutze das awk Kommando oben / unten.
quelle
/user90
nichtuser90
Eher benutzt du 'awk' um "user90" zu filtern:
quelle
Dieser einfache grep Befehl erledigt die Arbeit,
quelle
Mit
sed
delete alles in einer Zeichenkette vor einem bestimmten Zeichen (in doppelter Klammer [Specific char] definieren).Bedeutet, dass alle (
.*[\]
) Zeichen vor einem\
Zeichen durch Leerzeichen (//
) ersetzt werden.Wenn Sie eine Datei haben und ersetzen möchten, verwenden Sie das
-i
Flag in demsed
Befehl wie folgt :quelle
Die ursprüngliche Frage wurde gestellt
sed
, aber ich sehe, dass Alternativen hier beliebt sind.Wenn Sie Bash verwenden, ist die Parametererweiterung bei weitem die einfachste:
Wenn Sie möglicherweise mehr als einen Backslash erwarten, verdoppeln Sie die Hash-Zeichen:
Für weitere Informationen
man bash
und suchen Sie nachParameter Expansion
.quelle
Für den Fall, dass jemand versucht, ein auskommentiertes Element
# server_tokens off;
aus nginx automatisch zu entfernen , um bei automatischen Entwicklungsoperationen zu helfen:sudo sed -ri 's/#\s(server_tokens off;)/\1/' /etc/nginx/nginx.conf
.Getestet und lauffähig für Nginx / 1.12.1 unter Ubuntu 16.04 LTS. Verwandte Antwort zum Sperren von NGINX durch Deaktivieren von Servertoken hier .
quelle