Zoeken op website

Hoe u 'cat'- en 'tac'-opdrachten met voorbeelden in Linux kunt gebruiken


Dit artikel maakt deel uit van onze Linux Tricks and Tips-serie. In dit artikel zullen we het basisgebruik van de cat-opdracht (meest gebruikte opdracht in Linux) en tac (meest gebruikte opdracht in Linux) en tac ( omgekeerde van cat-opdracht – print bestanden in omgekeerde volgorde) met enkele praktische voorbeelden.

Lees ook: 13 Handige ‘cat’-opdrachtvoorbeelden in Linux

Basisgebruik van Cat Command onder Linux

Het Cat-commando, acroniem voor Concatenate, is een van de meest gebruikte commando's in *nix-systemen. Het meest elementaire gebruik van de opdracht is het lezen van bestanden en het weergeven ervan op stdout, wat betekent dat de inhoud van bestanden op uw terminal wordt weergegeven.

cat file.txt

Een ander gebruik van de opdracht cat is om meerdere bestanden samen te lezen of te combineren en de uitvoer naar een monitor te sturen, zoals geïllustreerd in de onderstaande voorbeelden.

cat file1.txt file2.txt file3.txt

De opdracht kan ook worden gebruikt om meerdere bestanden samen te voegen tot één enkel bestand met behulp van de “> ” Linux-omleidingsoperator.

cat file1.txt file2.txt file3.txt > file-all.txt

Door de append redirector te gebruiken, kunt u de inhoud van een nieuw bestand onderaan de file-all.txt toevoegen met de volgende syntaxis.

cat file4.txt >> file-all.txt

Het cat commando kan gebruikt worden om de inhoud van een bestand naar een nieuw bestand te kopiëren. Het nieuwe bestand kan willekeurig worden hernoemd. Kopieer het bestand bijvoorbeeld van de huidige locatie naar de map /tmp/.

cat file1.txt > /tmp/file1.txt 

Kopieer het bestand van de huidige locatie naar de map /tmp/ en wijzig de naam.

cat file1.txt > /tmp/newfile.cfg

Een minder gebruik van de opdracht cat is het maken van een nieuw bestand met de onderstaande syntaxis. Wanneer u klaar bent met het bewerken van het bestand, drukt u op CTRL+D om het nieuwe bestand op te slaan en af te sluiten.

cat > new_file.txt

Om alle uitvoerregels van een bestand te nummeren, inclusief lege regels, gebruikt u de schakelaar -n.

cat -n file-all.txt

Om alleen het nummer van elke niet-lege regel weer te geven, gebruikt u de schakelaar -b.

cat -b file-all.txt

Wil je meer weten over Linux cat-commando? Lees dan ons artikel over 13 nuttige ‘cat’-opdrachtvoorbeelden in Linux.

Leer hoe u Tac Command gebruikt in Linux

Aan de andere kant is een minder bekend en minder gebruikt commando in *nix-systemen het tac-commando. Tac is praktisch de omgekeerde versie van het cat-commando (ook achterstevoren gespeld), dat elke regel van een bestand afdrukt, beginnend bij de onderste regel en eindigend op de bovenste regel, volgens de standaard van uw machine uitgang.

tac file-all.txt

Een van de belangrijkste opties van het commando wordt weergegeven door de -s-schakelaar, die de inhoud van het bestand scheidt op basis van een tekenreeks of trefwoord uit het bestand.

tac file-all.txt --separator "two"

Vervolgens is het belangrijkste gebruik van de opdracht tac dat het een grote hulp kan bieden bij het debuggen van logbestanden, waarbij de chronologische volgorde van de loginhoud wordt omgedraaid.

tac /var/log/auth.log

Or to display the last lines

tail /var/log/auth.log | tac
Voorbeelduitvoer
tecmint@tecmint ~ $ tac /var/log/auth.log
pr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr  6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...

Hetzelfde als het commando cat, doet tac uitstekend werk bij het manipuleren van tekstbestanden, maar het moet worden vermeden in andere typen bestanden, vooral in binaire bestanden of in bestanden waarbij de eerste regel geeft het programma aan dat het zal uitvoeren.