Bash                
            Korzystanie z kota
        
        
            
    Szukaj…
Składnia
- cat [OPCJE] ... [PLIK] ...
Parametry
| Opcja | Detale | 
|---|---|
| -n | Wydrukuj numery linii | 
| -v | Pokaż znaki niedrukowalne, używając notacji ^ i M, z wyjątkiem LFD i TAB | 
| -T | Pokaż znaki TAB jako ^ I | 
| -MI | Pokaż znaki wysuwu linii (LF) jako $ | 
| -mi | Taki sam jak -vE | 
| -b | Liczba niepustych wierszy wyjściowych, zastępuje -n | 
| -ZA | odpowiednik -vET | 
| -s | pomija powtarzające się puste linie wyjściowe, s oznacza ściśnięcie | 
Uwagi
 cat może czytać zarówno pliki, jak i standardowe dane wejściowe i konkatenuje je do standardowego wyjścia 
Drukowanie zawartości pliku
cat file.txt
wydrukuje zawartość pliku.
 Jeśli plik zawiera znaki spoza ASCII, możesz wyświetlić te znaki symbolicznie za pomocą cat -v . Może to być przydatne w sytuacjach, w których znaki kontrolne byłyby w przeciwnym razie niewidoczne. 
cat -v unicode.txt
 Bardzo często do celów interaktywnych lepiej jest używać interaktywnego pagera, takiego jak less lub more . ( less jest znacznie potężniejsze niż more i zaleca się stosowanie less niż more ). 
less file.txt
Aby przekazać zawartość pliku jako dane wejściowe do polecenia. Podejście zwykle postrzegane jako lepsze ( UUOC ) polega na użyciu przekierowania.
tr A-Z a-z <file.txt   # as an alternative to cat file.txt | tr A-Z a-z
 W przypadku, gdy zawartość musi być wyświetlana od końca od końca, można użyć polecenia tac : 
tac file.txt
 Jeśli chcesz wydrukować zawartość z numerami linii, użyj -n z cat : 
cat -n file.txt
 Aby wyświetlić zawartość pliku w całkowicie jednoznacznej formie bajt po bajcie, zrzut szesnastkowy jest standardowym rozwiązaniem. Jest to przydatne w przypadku bardzo krótkich fragmentów pliku, na przykład gdy nie znasz dokładnego kodowania. Standardowym narzędziem zrzutu heksadecymalnego jest od -cH , chociaż reprezentacja jest nieco kłopotliwa; typowe zamienniki obejmują xxd i hexdump . 
$ printf 'Hëllö wörld' | xxd
0000000: 48c3 ab6c 6cc3 b620 77c3 b672 6c64       H..ll.. w..rld
Wyświetl numery linii z wyjściem
 Użyj flagi --number aby wydrukować numery linii przed każdą linią. Alternatywnie -n robi to samo. 
$ cat --number file
 1  line 1
 2  line 2
 3
 4  line 4
 5  line 5
 Aby pominąć puste linie podczas liczenia linii, użyj --number-nonblank lub po prostu -b . 
$ cat -b file
 1  line 1
 2  line 2
 3  line 4
 4  line 5
Odczyt ze standardowego wejścia
cat < file.txt
 Dane wyjściowe są takie same jak cat file.txt , ale czyta zawartość pliku ze standardowego wejścia zamiast bezpośrednio z pliku. 
printf "first line\nSecond line\n" | cat -n 
 Polecenie echo przed | wyprowadza dwie linie. Polecenie cat działa na dane wyjściowe, aby dodać numery wierszy. 
Połącz pliki
 To jest główny cel cat . 
cat file1 file2 file3 > file_all
 cat może być również używany podobnie do łączenia plików w ramach potoku, np 
cat file1 file2 file3 | grep foo
Napisz do pliku
cat >file
Pozwoli ci to napisać tekst na terminalu, który zostanie zapisany w pliku o nazwie file .
cat >>file
zrobi to samo, tyle że doda tekst na końcu pliku.
NB: Ctrl + D, aby zakończyć pisanie tekstu na terminalu (Linux)
Dokumentu tego można użyć do wstawienia zawartości pliku do wiersza poleceń lub skryptu:
cat <<END >file
Hello, World.
END
 Token po symbolu przekierowania << jest dowolnym ciągiem, który musi występować sam w linii (bez początkowych lub końcowych białych znaków), aby wskazać koniec dokumentu tutaj. Możesz dodać cytowanie, aby zapobiec wykonywaniu przez powłokę podstawiania poleceń i interpolacji zmiennych: 
cat <<'fnord'
Nothing in `here` will be $changed
fnord
 (Bez cudzysłowów here zostanie wykonane jako polecenie, a $changed zostanie zastąpiony wartością zmiennej changed - lub nic, jeśli nie zostanie zdefiniowana). 
Pokaż znaki niedrukowalne
Jest to przydatne, aby sprawdzić, czy są jakieś znaki niedrukowalne lub znaki spoza ASCII.
 np. jeśli skopiowałeś kod z Internetu, możesz mieć cytaty takie jak ” zamiast standardowego " . 
$ cat -v file.txt
$ cat -vE file.txt # Useful in detecting trailing spaces.
na przykład
$ echo '”     ' | cat -vE # echo | will be replaced by actual file.
M-bM-^@M-^]     $
 Możesz także użyć cat -A (A for All), który jest równoważny cat -vET . Wyświetli znaki TAB (wyświetlane jako ^I ), znaki niedrukowalne i koniec każdego wiersza: 
$ echo '” `' | cat -A
M-bM-^@M-^]^I`$
Połącz spakowane pliki
 Pliki skompresowane przez gzip można bezpośrednio łączyć w większe pliki gzip. 
cat file1.gz file2.gz file3.gz > combined.gz
 Jest to właściwość gzip która jest mniej wydajna niż konkatenacja plików wejściowych i gzipowanie wyniku: 
cat file1 file2 file3 | gzip > combined.gz
Pełna demonstracja:
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
Co skutkuje w
Hello world!
Howdy world!
 Zauważ, że greetings.txt.gz jest jednym plikiem i jest dekompresowany jako pojedynczy plik greeting.txt . tar -czf hello.txt howdy.txt > greetings.tar.gz to z tar -czf hello.txt howdy.txt > greetings.tar.gz , który utrzymuje oddzielne pliki wewnątrz tarballa.