Sådan bruges cat- og tac-kommandoer med eksempler i Linux


Denne artikel er en del af vores Linux Tricks and Tips-serier. I denne artikel vil vi dække nogle grundlæggende anvendelser af cat-kommando (hyppigst anvendte kommando i Linux) og tac (omvendt af cat-kommando - udskriv filer i omvendt rækkefølge) med nogle praktiske eksempler.

Grundlæggende brug af Cat Command i Linux

Cat-kommando, akronym for Concatenate, er en af de mest anvendte kommandoer i * nix-systemer. Den mest basale anvendelse af kommandoen er at læse filer og vise dem til stdout, hvilket betyder at vise indholdet af filer på din terminal.

# cat file.txt

En anden anvendelse af cat-kommandoen er at læse eller kombinere flere filer sammen og sende output til en skærm som illustreret i nedenstående eksempler.

# cat file1.txt file2.txt file3.txt

Kommandoen kan også bruges til at sammenkæde (sammenføje) flere filer til en enkelt fil ved hjælp af “>” Linux omdirigeringsoperatøren.

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

Ved at bruge append redirector kan du tilføje indholdet af en ny fil i bunden af file-all.txt med følgende syntaks.

# cat file4.txt >> file-all.txt

Cat-kommandoen kan bruges til at kopiere indholdet af filen til en ny fil. Den nye fil kan omdøbes vilkårlig. Kopier f.eks. Filen fra den aktuelle placering til /tmp/ -mappen.

# cat file1.txt > /tmp/file1.txt 

Kopier filen fra den aktuelle placering til /tmp/ -mappen, og skift dens navn.

# cat file1.txt > /tmp/newfile.cfg

En mindre brug af cat-kommandoen er at oprette en ny fil med nedenstående syntaks. Når du er færdig med at redigere filen, skal du trykke på CTRL + D for at gemme og afslutte den nye fil.

# cat > new_file.txt

For at nummerere alle outputlinjer i en fil, inklusive tomme linjer, skal du bruge kontakten -n .

# cat -n file-all.txt

Brug kun -b -knappen for at få vist antallet af hver ikke-tomme linje.

# cat -b file-all.txt

Vil du lære mere om Linux cat-kommando? læs derefter vores artikel om 13 nyttige 'cat' kommandoeksempler i Linux.

Lær hvordan du bruger Tac Command i Linux

På den anden side er en mindre kendt og mindre brugt kommando i * nix-systemer kommandoen tac . Tac er praktisk talt den omvendte version af cat -kommandoen (også stavet baglæns), der udskriver hver linje i en fil startende fra bundlinjen og slutter på den øverste linje til din maskins standardoutput.

# tac file-all.txt

En af de vigtigste muligheder for kommandoen er repræsenteret af -s -kontakten, der adskiller indholdet af filen baseret på en streng eller et nøgleord fra filen.

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

Dernæst er den vigtigste anvendelse af tac-kommandoen, at den kan yde en stor hjælp til at debugge logfiler, vende den kronologiske rækkefølge af logindholdet.

$ tac /var/log/auth.log

Or to display the last lines

$ tail /var/log/auth.log | tac
[email  ~ $ 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
....
[email  ~ $ 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
...

Samme som cat kommando, tac gør et fremragende stykke arbejde med at manipulere tekstfiler, men det bør undgås i andre typer filer, især binære filer eller på filer, hvor den første linje angiver det program, der kører det.