Operativni sustavi temeljeni na Linuxu nude mnoge uslužne programe za obradu teksta naredbenog retka koje možete koristiti u svakodnevnoj rutini. Naredba cut je jedan takav uslužni program za manipulaciju tekstom koji koristi graničnike, bajtove, polja i stupce za dohvaćanje potrebnog niza iz baze podataka ravnih datoteka ili retka.
Budući da baza podataka s ravnim datotekama nema strukturni odnos i zapisi su odvojeni uz pomoć graničnika, cut je idealan alat za izdvajanje znakova ili bajtova informacija. Ovaj članak detaljno govori o naredbi rezanja i pokazuje neke praktične primjere s različitim opcijama filtera kako biste mogli započeti s alatom.
Pregled naredbe cut
cut koristi sljedeću osnovnu sintaksu:
izrezati
Također ga možete usmjeriti s drugim naredbama na sljedeći način:
echo “niz_znakova” | izrezati
Imajte na umu da izostanak bilo koje opcije generira pogrešku. Evo nekoliko zastavica koje možete koristiti s cut za pozivanje njegovih različitih funkcija:
Opcija | Opis |
---|---|
-b | Reže prema poziciji bajta |
-c | Rezovi prema poziciji lika |
-d | Izdvaja niz pomoću graničnika specificiranog s (-f) opcijom polja |
-f | Ekstrakti po navedenom polju |
-s | Ekstrakti samo za graničnike |
--upotpuniti, dopuna | Ispišite izlaz osim polja koje ste naveli |
--izlazni graničnik | Zamijenite postojeći graničnik onim koji ste naveli |
Evo nekoliko primjera naredbe cut koji će vam pomoći da bolje razumijete alat i njegove funkcije.
1. Izdvoj određene znakove iz niza
Koristiti -b mogućnost dohvaćanja nizova znakova prema njihovom broju bajtova, kako slijedi:
eho "Zdravo svijete" | rez -b 1,2,3,5,8,9
Izlaz:
Heloor
Također možete odrediti put datoteke umjesto niza:
cut -b 1,2,3,4,5 naziv datoteke.txt
Ili možete izdvojiti znakove prema njihovom položaju u tekstu. Koristiti -c opciju nakon koje slijedi slijed/red znakova koje trebate dohvatiti kako slijedi:
eho "Zdravo svijete" | rez -c 1,2,3,5,6,8,10,11
Izlaz:
Bok stari
Slično, za dohvaćanje polja ili stupaca iz baze podataka ravnih datoteka, koristite naredbu cut s -f opcija zastavice:
cut -f 3 baza podataka.txt
2. Izrežite raspon bajtova ili znakova
Također možete koristiti -b označite naredbom cut za izdvajanje i ispis više raspona bajtova na sljedeći način:
cut -b 1-7,16-23 baza podataka.txt
Možete definirati raspon za dohvaćanje znakova pomoću -c označiti kako slijedi:
cut -c 1-7,16-23 baza podataka.txt
3. Izdvoj tekst iz početne ili krajnje pozicije
Koristiti -cn- opcija za izdvajanje teksta od n-tog znaka nadalje do kraja retka, gdje n je indeks znaka u nizu.
Na primjer, da biste izdvojili niz koji počinje od šestog znaka do kraja retka:
izrezati -c6- bazu podataka.txt
Ili upotrijebite sljedeću naredbu za dohvaćanje od početka do posljednjeg m znakovi iz datoteke:
cut -c-8 baze podataka.txt
4. Izrežite više polja iz datoteke
Također možete ispisati više polja iz datoteke pomoću -f zastava.
cut -f 1,2 baza podataka.txt
Izlaz:
IME DOB
Jovan 20
Lisa 24
Jack 18
Bruce 23
Nancy 19
5. Ekstrahirajte tekst pomoću graničnika
Možete koristiti -d zastavicu za određivanje graničnika s -f opcija. Razdjelnik specificira znak koji se koristi za odvajanje polja u tekstualnoj datoteci.
Na primjer, da biste izdvojili prvi stupac /etc/passwd datoteku, koristite dvotočku (:) kao graničnik:
cut -d ‘:’ -f 1 /etc/passwd
Slično, vrijednost graničnika u danom nizu teksta je jedan razmak:
echo "1% od 1%" | rez -d ' ' -f 2,3
Izlaz:
1% od
6. Promjena izlaznog graničnika za prikaz
The --izlazni graničnik flag dodaje fleksibilnost izlazu naredbe cut. Na primjer, možete koristiti zastavicu za prikaz izlaza u zasebnom retku pomoću $’\n’ (novi redak) vrijednost, kako slijedi:
grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\n'
Izlaz:
alice
Alice
/bin/sh
Štoviše, također možete zamijeniti graničnik ulazne datoteke graničnikom po svom izboru u izlazu pomoću --izlazni graničnik zastava:
grep root /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@
Izlaz:
root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin
7. Izrežite polja samo kada linija sadrži graničnik
Koristiti -s zastavicu za izdvajanje polja samo kada retke sadrže graničnik. Na primjer, sljedeća naredba neće dohvatiti polje -f 1 osim ako nema razmaknicu:
echo "HelloWorld" | rez -d " " -f 1 -s
Naprotiv, dolje spomenuta naredba će generirati izlaz jer niz sadrži navedeni graničnik:
eho "Zdravo svijete" | rez -d " " -f 1 -s
Izlaz:
zdravo
Slično, također možete koristiti bilo koji drugi znak kao graničnik:
eho "Zdravo: Svijetu" | rez -d ":" -f 2 -s
Izlaz:
Svijet
8. Nadopuni izlaz naredbe
Uslužni program Cut vam također omogućuje ispis svih polja osim navedenog polja. Koristiti --upotpuniti, dopuna opcija kako slijedi za dohvaćanje svih pojedinosti o root korisničkom računu osim petog stupca:
grep "root" /etc/passwd | cut -d ':' --komplement -s -f 5
Izlaz:
korijen: x: 0:0:/root:/bin/bash
Slično, u donjem primjeru, -f 1 parametar mora biti prikazan zdravo teksta međutim, zbog --upotpuniti, dopuna opciju, ispisuje samo ostatak.
eho "Pozdrav cijelom svijetu" | rez -d " " -f 1 --dopuna
Izlaz:
cijelom Svijetu
Najbolji dio je što možete kombinirati naredbu cut sa standardnim izlazom drugih Linux/Unix naredbi.
sed jedan je od takvih alata za uređivanje teksta koji možete koristiti za brisanje, umetanje i zamjenu teksta. Njegov izlaz možete jednostavno usmjeriti na naredbu cut.
U primjeru ispod, naredbu grep izlaz se vodi u pomoćni program sed koji zamjenjuje dvotočku (:) crticom (-), a zatim cut prikazuje polja 1, 6 i 7 na sljedeći način:
grep alice /etc/passwd | sed 's/:/-/g' | rez -d ' ' -f 1,5,7
Izlaz:
alice-x-1005-1008-Alice-/home/new/alice-/bin/sh
Rad s tekstom na Linuxu pomoću cut
Naredba cut je fleksibilan i učinkovit uslužni program naredbenog retka koji možete koristiti u različitim slučajevima upotrebe manipulacije tekstom. Koristi operacije za filtriranje teksta iz datoteka ili standardnih ulaznih podataka. Uslužni program također ima prednost što korisnicima omogućuje da ograniče tekst koji žele prikazati i dodaju graničnike po vlastitom izboru.
Međutim, ova naredba također ima neka ograničenja. Ne možete koristiti regularne izraze za određivanje graničnika ili koristiti istodobne opcije naredbi za više rezanja. Ovaj članak pokriva praktične primjere od osnovne do napredne razine ovog uslužnog programa kako bi pomogao početnicima s jasnim razumijevanjem naredbi za manipulaciju tekstom na Linuxu.
Želite poboljšati svoju Linux igru i naučiti više o manipulaciji tekstom? Evo pet najboljih Linux alata naredbenog retka za početak vašeg putovanja.
Pročitajte dalje
- Linux
- Linux naredbe
- Linux Elementary
- Linux Bash Shell
Rumaisa je slobodni pisac u MUO. Nosila je mnogo šešira, od matematičarke do entuzijasta za informacijsku sigurnost, a sada radi kao analitičarka SOC-a. Njezini interesi uključuju čitanje i pisanje o novim tehnologijama, distribucijama Linuxa i svemu oko informacijske sigurnosti.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu