Cut Command in Linux
Inhoudsopgave:
- Het commando Snijden gebruiken
- Snijden op veld
- Hoe te snijden op basis van een scheidingsteken
- Hoe de selectie aan te vullen
- Hoe een output-scheidingsteken op te geven
- Hoe bytes en karakters te knippen
- Snijd voorbeelden
- Krijg een lijst van alle gebruikers
- Bekijk 10 meestgebruikte opdrachten
- Conclusie
Er zijn veel hulpprogramma's beschikbaar in Linux- en Unix-systemen waarmee u tekstbestanden kunt verwerken en filteren. Knippen is een opdrachtregelhulpprogramma waarmee u delen van lijnen uit gespecificeerde bestanden of piped-gegevens kunt knippen en het resultaat afdrukken naar standaarduitvoer. Het kan worden gebruikt om delen van een lijn te knippen op scheidingsteken, bytepositie en karakter.
In deze zelfstudie laten we u zien hoe u het Linux-knipcommando kunt gebruiken door praktische voorbeelden en gedetailleerde uitleg van de meest voorkomende knipopties.
Het commando Snijden gebruiken
De syntaxis voor de opdracht cut is als volgt:
cut OPTION……
Wanneer u de opdracht cut gebruikt, moet u slechts één van de volgende opties gebruiken:
-
-f
(--fields=LIST
) - Selecteer door een veld, een set velden of een reeks velden op te geven. Dit is de meest gebruikte optie.-b
(--bytes=LIST
) - Selecteer door een byte, een set bytes of een bereik van bytes op te geven.-c
(---characters=LIST
) - Selecteer door een teken, een set tekens of een reeks tekens op te geven.
Andere opties zijn:
-
-d
(--delimiter
) - Geef een scheidingsteken op dat zal worden gebruikt in plaats van het standaard “TAB” scheidingsteken.--complement
---complement
de selectie aan. Wanneer u deze optie gebruikt, worden alle bytes, tekens of velden weergegeven behalve de geselecteerde.-s
(- alleen--only-delimited
) - Standaard zal knippen elke regel afdrukken die geen scheidingsteken bevat. Wanneer u deze optie gebruikt, worden er geen lijnen afgedrukt zonder scheidingstekens.--output-delimiter
- De standaardinstelling is het gebruik van het input-scheidingsteken als het output-scheidingsteken. Met deze optie kunt u een andere uitvoerscheidingstekenreeks opgeven.
Het snijcommando kan nul of meer invoerbestandsnamen accepteren. Als er geen BESTAND is opgegeven, of wanneer BESTAND
-
, zal cut de standaardinvoer lezen.
Het argument LIJST dat wordt doorgegeven aan de opties
-f
,
-b
en
-c
kan een geheel getal zijn, meerdere gehele getallen gescheiden door komma's, een bereik van geheel getal of meerdere gehele getallen gescheiden door komma's. Elk bereik kan een van de volgende zijn:
-
N
hetN
veld, byte of karakter, beginnend bij 1.N-
van hetN-
veld, byte of karakter, tot het einde van de regel.NM
van het Nde naar het Mth veld, byte of karakter.-M
van het eerste tot het Mth-veld, byte of karakter.
Snijden op veld
Cut-opdracht wordt meestal gebruikt om geselecteerde velden van elke regel met bestanden of de standaardinvoer weer te geven. Wanneer niet opgegeven, is het standaardscheidingsteken "TAB".
In de onderstaande voorbeelden gebruiken we het volgende bestand. Alle velden worden gescheiden door tabbladen.
test.txt
245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978
Om het eerste en het derde veld weer te geven, gebruikt u:
cut test.txt -f 1, 3
245:789 M:4540 535:763 M:3476
Of als u van het 1e tot het 4e veld wilt weergeven:
cut test.txt -f -4
245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales
Hoe te snijden op basis van een scheidingsteken
Om te knippen op basis van een scheidingsteken, gebruikt u de optie
-d
gevolgd door het scheidingsteken dat u wilt gebruiken.
Als u bijvoorbeeld het eerste en derde veld wilt weergeven met ":" als scheidingsteken, typt u:
cut test.txt -d ':' -f 1, 3
245:4540 Admin 01 535:3476 Sales 11
U kunt elk willekeurig teken gebruiken als scheidingsteken. In het volgende voorbeeld gebruiken we het spatie-teken als scheidingsteken en drukken we het 2e veld af:
echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2
Hoe de selectie aan te vullen
Gebruik als aanvulling op de lijst met
--complement
optie
--complement
. Hiermee worden alleen die velden afgedrukt die niet zijn geselecteerd met de optie
-f
.
De volgende opdracht drukt alle velden af behalve de 1e en 3e:
cut test.txt -f 1, 3 --complement
4567 Admin 01:10:1980 4987 Sales 11:04:1978
Hoe een output-scheidingsteken op te geven
Gebruik de optie
--output-delimiter
om het uitvoerscheidingsteken op te geven. Als u bijvoorbeeld het uitvoerscheidingsteken wilt instellen op
_
u:
cut test.txt -f 1, 3 --output-delimiter='_'
Hoe bytes en karakters te knippen
Laten we voordat we verder gaan een onderscheid maken tussen bytes en tekens.
Eén byte is 8 bits en kan 256 verschillende waarden vertegenwoordigen. Toen de ASCII-standaard werd vastgesteld, hield deze rekening met alle letters, cijfers en symbolen die nodig zijn om met Engels te werken. De ASCII-tekentabel heeft 128 tekens en elk teken wordt vertegenwoordigd door één byte. Toen computers wereldwijd populair werden, begonnen technologiebedrijven nieuwe karaktercoderingen te introduceren voor verschillende talen en voor talen met meer dan 256 tekens, een eenvoudige 1 op 1 mapping was niet mogelijk. Dit leidt tot verschillende problemen, zoals het delen van documenten of browsen op websites en er was een nieuwe Unicode-standaard nodig die de meeste schrijfsystemen ter wereld aankan. UTF-8 is gemaakt om deze problemen op te lossen. In UTF-8 worden niet alle tekens weergegeven met 1 byte. Tekens kunnen worden weergegeven met 1 byte tot 4 bytes.
In de volgende voorbeelden gebruiken we het
ü
teken dat 2 bytes nodig heeft.
Gebruik de optie
-b
(
--bytes
) om een deel van een lijn uit te snijden door een
--bytes
op te geven.
Selecteer de 5e byte:
echo 'drüberspringen' | cut -b 5
b
Selecteer de 5e, 9e en 13e bytes:
echo 'drüberspringen' | cut -b 5, 9, 13
bpg
Selecteer het bereik van 1e tot 5e byte:
echo 'drüberspringen' | cut -b 1-5
drüb
Op het moment dat dit artikel werd geschreven, heeft de versie van knippen gebundeld in GNU coreutils geen optie om te knippen door tekens. Bij gebruik van de optie
-c
gedraagt cut zich hetzelfde als bij gebruik van de optie
-b
.
Snijd voorbeelden
Het snijcommando wordt meestal gebruikt in combinatie met andere commando's via leidingen. Hier zijn enkele voorbeelden.
Krijg een lijst van alle gebruikers
De uitvoer van het
getent passwd
commando wordt doorgegeven om te
cut
waardoor het eerste bestand wordt afgedrukt met
:
als scheidingsteken.
getent passwd | cut -d ':' -f1
Bekijk 10 meestgebruikte opdrachten
In het volgende voorbeeld wordt cut gebruikt om de eerste 8 bytes van elke regel van de uitvoer van de
history
te strippen.
history | cut -c8- | sort | uniq -c | sort -rn | head
Conclusie
U zou nu een goed begrip moeten hebben van het gebruik van het Linux cut commando. Hoewel erg handig, heeft het commando knippen enkele beperkingen. Het biedt geen ondersteuning voor het opgeven van meer dan één tekens als scheidingsteken en ondersteunt geen meerdere decimeters.
gesneden terminalSnijd telefoongesprekken kort met nep-a-excuus op je iPhone
Geef de persoon aan de andere kant van de iPhone een geluidje met een audio op basis van excuus.
Snijd hout met laserpointer en verbeelding
Met een laserpointer als een mes kunnen project creaties van de Computer Human Interaction-conferentie op maat gemaakte creaties maken van hout en plastic zonder uren te ontwerpen.
Linux ip commando met voorbeelden
De opdracht ip is een krachtig hulpmiddel voor het configureren van netwerkinterfaces. Het kan worden gebruikt om interfaces omhoog of omlaag te brengen, adressen en routes toe te wijzen en te verwijderen, ARP-cache te beheren en nog veel meer.