Jak mogę to uzyskać:
randomcollege-nt\user90
do tego:
user90
używasz sed
?
command-line
sed
text-processing
Roboman1723
źródło
źródło
man the_command_name
a otrzymasz pomocną instrukcję obsługi polecenia. Możesz także przejść na stronę www.google.com i wpisać „samouczek nazwy polecenia”, a znajdziesz wiele szczegółowych instrukcji.sed
stronie: grymoire.com/Unix/Sed.htmlOdpowiedzi:
Użyłbym prostego
grep
wyszukiwaniauser90
:Jeśli użytkownik90 nie jest stały, preferuj to polecenie:
Na koniec użyj
sed
do edycji pliku w miejscu:Lub, aby dopasować wszystkie możliwe konta użytkowników:
źródło
grep -F
cały ciąg.Analizujesz jakiś tekst, aby wyodrębnić nazwę użytkownika z
domain\username
ciągu, najprawdopodobniej z systemu Windows. Większość powyższych odpowiedzi dotyczy tylko określonego ciągu przykładowego.Najlepszym sposobem na to jest użycie wyrażenia regularnego w sed, aby wyodrębnić to, co nastąpi później
\
. Oto jak to zrobiłbyś:To dopasuje wszystko (
.*
) do ukośnika odwrotnego (tutaj uciekamy, więc to jest\\
), a następnie dopasuje wszystko po ukośniku (.*
), ale czyni z niego grupę przechwytywania (tzn. Zawijaj nawiasy wokół niego, ale musimy również uciec im, więc\(.*\)
). Teraz, gdy mamy coś, co następuje po\
ciągu jako grupa przechwytywania, drukujemy to, odwołując się do niego\1
.Powyższego
sed
polecenia można użyć z dowolną nazwą domeny, niekoniecznierandomcollege-nt
.źródło
Kolejny
sed
:lub POSIXly:
źródło
sh
funkcja POSIX . pubs.opengroup.org/onlinepubs/009604599/utilities/…Wiem, że chcesz użyć sed, ale użyłbym czegoś innego ...
źródło
Czy to jest pytanie?
jeśli żądło randomcollege-nt nie jest stałe, użyj komendy awk powyżej / poniżej.
źródło
/user90
nieuser90
Zamiast tego używasz „awk” do filtrowania „user90”:
źródło
To proste polecenie grep wykona zadanie,
źródło
Z
sed
usunąć wszystko na sznurku przed określonym znaku (określić na podwójnym uchwycie [specyficzna char]).Oznacza zastąpienie wszystkich (
.*[\]
) znaków przed a\
znak spacji (//
)Jeśli masz plik i chcesz go zastąpić, użyj
-i
flagi wsed
poleceniu w następujący sposób:źródło
Zadano oryginalne pytanie
sed
, ale widzę, że tutaj są popularne alternatywy.Jeśli używasz Bash, ekspansja parametrów jest zdecydowanie najprostsza:
Jeśli potencjalnie oczekujesz więcej niż jednego ukośnika odwrotnego, podwój znaki skrótu:
Aby uzyskać więcej informacji
man bash
i wyszukajParameter Expansion
.źródło
W przypadku, gdy ktoś próbuje automatycznie usunąć komentarz
# server_tokens off;
z nginx, aby pomóc w auto dev-ops:sudo sed -ri 's/#\s(server_tokens off;)/\1/' /etc/nginx/nginx.conf
.Przetestowane i działające dla nginx / 1.12.1 na Ubuntu 16.04 LTS. Powiązana odpowiedź na zablokowanie NGINX przez wyłączenie tokenów serwera tutaj .
źródło