Data Visualization and D3 by David Chouinard
Sadržaj:
Prilikom rada s tekstualnim datotekama često ćete morati pronaći i zamijeniti nizove teksta u jednoj ili više datoteka.
sed
je s tream ed itor. Može izvesti osnovnu manipulaciju tekstom na datotekama i ulaznim tokovima, kao što su cjevovodi. Pomoću
sed
možete pretraživati, pronaći i zamijeniti, umetnuti i brisati riječi i retke. Podržava osnovne i proširene regularne izraze koji vam omogućuju podudaranje složenih obrazaca.
, razgovarat ćemo o tome kako pronaći i zamijeniti žice
sed
. Također ćemo vam pokazati kako izvršiti rekurzivnu pretragu i zamjenu.
Pronađite i zamijenite žicu
sed
Postoji nekoliko verzija
sed
, s nekim funkcionalnim razlikama među njima. macOS koristi BSD verziju, a većina Linux distribucija dolazi s GNU
sed
unaprijed zadanom instaliranom. Koristit ćemo GNU verziju.
Opći oblik pretraživanja i zamjene teksta pomoću
sed
ima sljedeći oblik:
sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE
-
-i
- Zadanosed
piše svoj izlaz na standardni izlaz. Ova opcija kažesed
da uređuje datoteke na svom mjestu. Ako se isporuči proširenje (ex -i.bak), stvorit će se sigurnosna kopija izvorne datoteke.s
- Naredba za zamjenu, vjerojatno najkorištenija naredba u sed./ / /
- znak razgraničenja. To može biti bilo koji znak, ali obično se koristi crta (/
) znak.SEARCH_REGEX
- Uobičajeni niz ili uobičajeni izraz za traženje.REPLACEMENT
- zamjenski niz.g
- Globalna zamjenska zastava.sed
po zadanom čita datoteku po red i mijenja samo prvu pojavuSEARCH_REGEX
na retku. Kada se omogući zamjenska zastava, sve pojave bit će zamijenjene.INPUTFILE
- Naziv datoteke na kojoj želite pokrenuti naredbu.
Dobra je praksa da se argumenti stavljaju oko argumenata kako se meta-znakovi ljuske neće proširiti.
Pogledajmo primjere kako se pomoću naredbe
sed
traži i zamjenjuje tekst u datotekama s nekim od najčešće korištenih opcija i zastava.
U demonstrativne svrhe koristit ćemo sljedeću datoteku:
file.txt
123 Foo foo foo foo /bin/bash Ubuntu foobar 456
sed -i 's/foo/linux/' file.txt
123 Foo linux foo linux /bin/bash Ubuntu foobar 456
Globalna zamjenska zastava zamjenjuje sve pojave uzorka pretraživanja:
sed -i 's/foo/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu linuxbar 456
Kao što ste možda primijetili, u prethodnom primjeru također se zamjenjuje
foobar
niz unutar
foobar
niza. Ako to nije željeno ponašanje, upotrijebite izraz word-boundery (
\b
) na oba kraja niza pretraživanja. Ovo osigurava da se djelomične riječi ne podudaraju.
sed -i 's/\bfoo\b/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu foobar 456
Da bi slučaj podudaranja uzoraka bio neosjetljiv, upotrijebite zastavicu
I
U primjeru u nastavku koristimo i
g
i
I
zastave:
sed -i 's/foo/linux/gI' file.txt
123 linux linux linux linux /bin/bash Ubuntu linuxbar 456
sed -i 's/\/bin\/bash/\/usr\/bin\/zsh/g' file.txt
Lakša i mnogo čitljivija opcija je upotreba drugog znaka za razgraničenje. Većina ljudi koristi okomitu traku (
|
) ili dvotočku (:), ali možete koristiti bilo koji drugi znak:
sed -i 's|/bin/bash|/usr/bin/zsh|g' file.txt
123 Foo foo foo foo /usr/bin/zsh Ubuntu foobar 456
Možete koristiti i regularne izraze. Na primjer za pretraživanje svih trima znamenki i zamijenite ih s nizom
number
koji biste koristili:
sed -i 's/\b\{3}\b/number/g' file.txt
number Foo foo foo foo /bin/bash demo foobar number
Još jedna korisna značajka sed je da možete koristiti znak ampersand
&
koji odgovara podudarnom obrascu. Znak se može koristiti više puta.
Na primjer, ako želite dodati kovrčave zagrade
{}
oko svakog troznamenkastog broja, upišite:
sed -i 's/\b\{3}\b/{&}/g' file.txt
{123} Foo foo foo foo /bin/bash demo foobar {456}
I posljednje, ali ne najmanje bitno, uvijek je dobra ideja napraviti sigurnosnu kopiju pri uređivanju datoteke
sed
. Da biste to učinili, samo pružite proširenje na opciju
-i
. Na primjer, za uređivanje
file.txt
i spremanje izvorne datoteke kao
file.txt.bak
upotrijebili biste:
sed -i.bak 's/foo/linux/g' file.txt
ls
Rekurzivno pronađite i zamijenite
Ponekad želite rekurzivno pretraživati imenike za datoteke koje sadrže niz i zamijenite niz u svim datotekama. To se može učiniti pomoću naredbi kao što su
find
ili
grep
za rekurzivno pronalaženje datoteka u direktoriju i cijeđenje imena datoteka u
sed
.
Sljedeća naredba rekurzivno će pretraživati datoteke u trenutnoj radnoj mapi i proslijediti nazive datoteka
sed
.
find. -type f -exec sed -i 's/foo/bar/g' {} +
Da biste izbjegli probleme s datotekama koje sadrže naziv u njihovom imenu, upotrijebite opciju
-print0
koja govori
find
za ispis imena datoteke, a zatim slijedi null znak i slanje izlaza na
sed
pomoću
xargs -0
:
find. -type f -print0 | xargs -0 sed -i 's/foo/bar/g'
Da biste izuzeli direktorij, koristite opciju
-not -path
. Na primjer, ako zamjenjujete niz u vašem lokalnom git repo-u da biste isključili sve datoteke koje počinju s točkom (
.
), Upotrijebite:
find. -type f -not -path '*/\.*' -print0 | xargs -0 sed -i 's/foo/bar/g'
find. -type f -name "*.md" -print0 | xargs -0 sed -i 's/foo/bar/g'
Druga je mogućnost upotreba naredbe
grep
za rekurzivno pronalaženje svih datoteka koje sadrže obrazac pretraživanja, a zatim slanje datoteka na
sed
:
grep -rlZ 'foo'. | xargs -0 sed -i.bak 's/foo/bar/g'
Zaključak
Iako se može činiti kompliciranim i složenim, u početku je pretraživanje i zamjena teksta u datotekama
sed
vrlo jednostavan.
Da biste saznali više o naredbama, opcijama i zastavama, posjetite GNU sed priručnik i Grymoire sedni vodič. Ako imate bilo kakvih pitanja ili povratnih informacija, slobodno ostavite komentar.
sed terminalKako pronaći i zamijeniti sve slike u Wordu
Sve slike u Microsoft Wordu lako je zamijeniti. Pomoću metode traženja i zamjene pronađite željenu sliku i zamijenite sve slike novom slikom.
Kako pronaći i zamijeniti znakove zamjenskih znakova u programu Excel
Jednostavan način pronalaženja i zamjene zamjenskih znakova u programu Excel kao uobičajeni tekst. Pronađite zamjenske znakove kao uobičajeni tekst u programu Excel pomoću specijalnih znakova tilde
S jedne strane život se lakše rješava različitim internetskim portalima i platformama za pohranu oblaka koji izgledaju vrlo obećavajuće što se tiče lako pristupa datotekama zabrinut. Ali, s druge strane, doista dolazi do preuzimanja vremena kad morate upravljati različitim datotekama na različitim platformama, zapamtiti lozinke i upravljati datotekama s deset različitih formata. Što ako postoji softver koji vam omogućava sinkronizaciju svih tih formata datoteka, povezujući ih na jednu platformu,
F-Secure Younited