Sök…


Syntax

  • cat [OPTIONS] ... [FILE] ...

parametrar

Alternativ detaljer
-n Skriv ut radnummer
-v Visa tecken som inte skriver ut med hjälp av ^ och M-notering utom LFD och TAB
-T Visa TAB-tecken som ^ I
-E Visa radmatningstecken (LF) som $
-e Samma som -vE
-b Antal nonempty-utgångslinjer, åsidosätter -n
-A motsvarande -VET
-s dämpa upprepade tomma utgångslinjer, s hänvisar till klämma

Anmärkningar

cat kan läsa från både filer och standardingångar och sammanfoga dem till standardutdata

Skriva ut innehållet i en fil

cat file.txt

kommer att skriva ut innehållet i en fil.

Om filen innehåller tecken som inte är ASCII kan du visa dessa tecken symboliskt med cat -v . Detta kan vara ganska användbart i situationer där kontrolltecken annars skulle vara osynliga.

cat -v unicode.txt

Men för interaktiv användning är det dock bättre att använda en interaktiv personsökare som less eller more . ( less är mycket kraftfullare än more och det rekommenderas att använda less oftare än more .)

less file.txt

För att skicka innehållet i en fil som inmatning till ett kommando. En metod som vanligtvis ses som bättre ( UUOC ) är att använda omdirigering.

tr A-Z a-z <file.txt   # as an alternative to cat file.txt | tr A-Z a-z

Om innehållet måste listas bakåt från dess slut kan kommandot tac användas:

tac file.txt

Om du vill skriva ut innehållet med radnummer använder du -n med cat :

cat -n file.txt

För att visa innehållet i en fil i en helt otvetydig byte-by-byte-form är en hexdump standardlösningen. Det här är bra för mycket korta utdrag av en fil, till exempel när du inte vet den exakta kodningen. Standardhex-dumpningsverktyget är od -cH , även om representationen är något besvärlig; vanliga ersättningar inkluderar xxd och hexdump .

$ printf 'Hëllö wörld' | xxd
0000000: 48c3 ab6c 6cc3 b620 77c3 b672 6c64       H..ll.. w..rld

Visa radnummer med utgång

Använd flaggan - nummer för att skriva ut --number före varje rad. Alternativt gör -n samma sak.

$ cat --number file

 1  line 1
 2  line 2
 3
 4  line 4
 5  line 5

För att hoppa över tomma rader när du räknar linjer, använd --number-nonblank eller helt enkelt -b .

$ cat -b file

 1  line 1
 2  line 2

 3  line 4
 4  line 5

Läs från standardinmatning

cat < file.txt

Output är samma som cat file.txt , men den läser filens innehåll från standardinmatning istället för direkt från filen.

printf "first line\nSecond line\n" | cat -n 

Echo-kommandot före | matar ut två rader. Kattkommandot verkar på utgången för att lägga till radnummer.

Sammanfatta filer

Detta är cat primära syfte.

cat file1 file2 file3 > file_all

cat kan också användas på liknande sätt för att sammanfoga filer som en del av en pipeline, t.ex.

cat file1 file2 file3 | grep foo

Skriv till en fil

cat >file

Det låter dig skriva text på terminalen som kommer att sparas i en fil med namnet fil.

cat >>file

gör samma sak, förutom att den lägger till texten i slutet av filen.

OBS: Ctrl + D för att avsluta skriva text på terminal (Linux)


Ett här dokument kan användas för att inlinera innehållet i en fil i en kommandorad eller ett skript:

cat <<END >file
Hello, World.
END

Token efter << omdirigeringssymbolen är en godtycklig sträng som måste uppstå ensam på en linje (utan ledande eller släpande mellanrum) för att indikera slutet på här dokumentet. Du kan lägga till citat för att förhindra att skalet utför kommandosubstitution och variabel interpolering:

cat <<'fnord'
Nothing in `here` will be $changed
fnord

(Utan citat skulle here köras som ett kommando, och $changed skulle ersättas med värdet på variabeln changed - eller ingenting, om den var odefinierad.)

Visa icke utskrivbara tecken

Detta är användbart för att se om det finns några tecken som inte kan skrivas ut eller tecken som inte är ASCII.

t.ex. om du har kopierat in koden från webben kan du ha citat som istället för standard " .

$ cat -v file.txt
$ cat -vE file.txt # Useful in detecting trailing spaces.

t.ex

$ echo '”     ' | cat -vE # echo | will be replaced by actual file.
M-bM-^@M-^]     $

Du kanske också vill använda cat -A (A för alla) som motsvarar cat -vET . Det kommer att visa TAB-tecken (visas som ^I ), icke utskrivbara tecken och slutet på varje rad:

$ echo '” `' | cat -A
M-bM-^@M-^]^I`$

Sammanfoga gzippade filer

Filer komprimerade med gzip kan direkt sammanlänkas till större gzippade filer.

cat file1.gz file2.gz file3.gz > combined.gz

Detta är en egenskap hos gzip som är mindre effektiv än att sammanfoga ingångsfilerna och gzippa resultatet:

cat file1 file2 file3 | gzip > combined.gz

En komplett demonstration:

echo 'Hello world!' > hello.txt
echo 'Howdy world!' > howdy.txt
gzip hello.txt 
gzip howdy.txt

cat hello.txt.gz howdy.txt.gz > greetings.txt.gz

gunzip greetings.txt.gz

cat greetings.txt

Vilket resulterar i

Hello world!
Howdy world!

Observera att greetings.txt.gz är en enda fil och dekomprimeras som den enda filen greeting.txt . Kontrast detta med tar -czf hello.txt howdy.txt > greetings.tar.gz , som håller filerna separata inuti tarballen.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow