Jeste li ikada trebali zamijeniti neki tekst u datoteci stvarno brzo? Zatim morate otvoriti uređivač teksta, pronaći liniju, a zatim upišite zamjenu. Što ako to morate učiniti mnogo puta? Što ako se ne radi o istoj stvari i morate pokrenuti više pretraživanja i zamijeniti svaku pojavu? Vrlo brzo postaje zamorno, ali postoji bolji način da se to učini pomoću alata koji se zovesed.

Pisali smo o POSIX-u i pregledali neka od sučelja i uslužnih programa koje sustav mora pružiti kako bi bio u skladu s POSIX-om. Alat naredbenog retkased je jedan od onih uslužnih programa koji omogućuju način za filtriranje, pronalaženje, zamjenu i preraspodjelu podataka u tekstualnim datotekama. To je iznimno moćan alat koji je vrlo jednostavan za početak, ali vrlo je teško naučiti kroz i kroz zbog naizgled beskrajnog broja značajki.

Prvo, treba napomenuti da je GNU implementacijaseddok je POSIX kompatibilan, ide iznad i izvan specifikacije za pružanje proširenja i značajki koje nisu navedene u zahtjevu POSIX. Kada se zazivased htjet ćete koristiti-posix zastavu kako bi se onemogućile sve GNU specifične ekstenzije i omogućila veća prenosivost. To je ključ kada pišete skripte koje namjeravate pokrenuti na različitim platformama. Primjerice, skup alata s MacOS-om neće biti GNU alati, niti oni koji se obično nalaze na * BSD-ovima.

Kako koristiti sed naredbu u Linuxu?

Opća sintaksa je sljedeća

sed [OPCIJA]… {script-only-if-no-other-script} [input-file] ...

To je malo zagonetno, ali u suštini očekuje opcije koje slijedi niz uputa u tekstualnom obliku, a zatim i datoteku za čitanje. U slučaju da ste u tekstsed, možete izostaviti ulaznu datoteku.

Postoji nekoliko različitih načinased može djelovati, neki se mogu kombinirati. One koje pokrivamo su osnove, ali su još uvijek vrlo moćne i postaju još više u razvoju vašeg znanjased i regularni izrazi.

  • p - Ispis - ispisuje linije s odgovarajućim tekstom
  • d - Izbriši - briše crte s odgovarajućim tekstom
  • s - Zamijeni - zamjenjuje ili zamjenjuje odgovarajući tekst na svakom retku

Osim načina rada, postoje mnoge zastavice koje se mogu koristiti na kraju teksta uzorka kako bi se povećalo ponašanje vaše naredbe. Koristit ćemog označava globalnu zamjenu umjesto zamjene prve pojave na svakom retku, kao što je zadano.

Nekised naredbe(za razliku od zastavica uzorka) koristit ćemo kako slijedi -

  • n - potiskuje automatski ispis teksta koji se ne podudara
  • E / r - omogućuje proširene regularne izraze
  • i - uređuje datoteku umjesto na ispisu

Prvo, moramo raspraviti pojam adrese used, Adresa je jednostavno mjesto u tekstu. Kada tekst odgovara navedenom uzorku, mjesto podudaranja postaje trenutna adresa unutar koje se izvršava naredba. Postoji i podrška za raspone adresa used što omogućuje određivanje dijela datoteke za obradu dok ostatak ostaje sam.

Ovdje možemo odrediti raspon redaka za ispis -

sed -n ,10 2,10p ’myfile.txt

Odredili smo linije 2 do 10 koje treba ispisati. Sintaksa used je čudno, ali je djelotvorno. Koristimo-n ovdje označite kako biste bili sigurni da će se ispisati samo ona podudarnost, inače će se ispisati sve linije i one koje se podudaraju duplicirati.

NAPOMENA: Used, crte počinju na 1, a ne na 0.

Isto tako, možemo izbrisati iste retke.

sed ‘2,10d’ myfile.txt

Budući da ne prikazujemo samo one koje odgovaraju, želimo ukloniti naše-n kako bi se ispisale naše crte.

Ovi primjeri su vrlo izmišljeni, pa je teško vidjeti kako to može biti vrlo korisno, ali stići ćemo tamo.

Zatim možemo početi zamjenjivati ​​pojavljivanja određenog uzorka u retku. To je osobito korisno za sisadmine. Kad god instaliram Linux na novom računalu, želim omogućiti sshd, ali želim biti siguran da se root korisnik ne može prijaviti.

sed -i / s / [#] PermitRootLogin da / PermitRootLogin no / g ’/ etc / ssh / sshd_config

Ova će naredba pretraživati/ Etc / ssh / sshd_config za redak koji sadrži#PermitRootLogin da (sa ili bez #) i promijenite naPermitRootLogin br na mjestu. Zagrade omogućuju izborno podudaranje, što je vrlo moćno. Različite distribucije isporučuju se s različitim zadanim postavkama u konfiguracijama, tako da je to vrlo zgodno.

NAPOMENA: Budite vrlo oprezni kada koristite-i zastavu jer lako možete izgubiti posao ili uništiti konfiguraciju sustava.

Ovdje možemo složiti neke različite funkcije used.

sed ‘2,10 {s / hello / Hello /;}’ myfile.txt

Ovo je nešto naprednije. Ono što mi ovdje radimo govorised za pokretanje naredbe na linijama od 2 do 10. Isto se može učiniti i za ispis ili brisanje svih linija s određenim podudaranjem uzorka.

Postoji mnogo funkcionalnosti u sustavused i nema načina da ih sve pokrijemo. Ako vam se sviđa ovaj vodič, javite nam i definitivno ćemo napraviti još nešto. Pokažite nam svoje omiljenesed naredbi u komentarima i slobodno zatražite više naredbi za naredbe.

Radio Za Vas: Robert Gaines & George Fleming | Želite Nas Kontaktirati?

Komentari Na Mjestu: