Widziałem polecenie cat pojawiające się w niektórych rzeczach online i byłem ciekawy, co się stało cat
i do czego służy w kontekście kogoś, kto po prostu robi proste rzeczy z linii poleceń.
Widziałem polecenie cat pojawiające się w niektórych rzeczach online i byłem ciekawy, co się stało cat
i do czego służy w kontekście kogoś, kto po prostu robi proste rzeczy z linii poleceń.
Odpowiedzi:
cat
„s głównym celem jest con cat pliki enate. cat file1 file2 ...
pokaże zawartość file
, file2
a pozostałe jeden po drugim, tak jakby zawartość była w jednym pliku. Zobacz manpage :
NAME
cat - concatenate and print files
Jest przeznaczony do użycia, gdy:
polecenie docelowe nie może odczytać z plików i musisz przekazać do niego wiele plików. Przykładem jest tr
narzędzie. Zwykle za pomocą jednego pliku można wykonać:
tr < file
Ale w przypadku wielu plików nie można użyć przekierowania, więc musisz wykonać następujące czynności:
cat file1 file2 ... | tr
wc
wydrukowanie zliczeń dla każdego pliku wraz z nazwami plików, w których mógłbyś chcieć tylko sumy, bez nazwy pliku.Pamiętaj, że większość komend napotkania ( grep
, sed
, awk
, sort
, ...) można odczytać pliki perfekcyjnie.
Jeśli chcesz zobaczyć zawartość pliku, użyć pagera - less
i more
to zarówno wybitnie zdolna do prezentowania plików do oglądania, a są o wiele bardziej wygodne w użyciu.
cat
jest jednym z najczęściej używanych poleceń w systemach operacyjnych typu Unix. Ma trzy powiązane funkcje w odniesieniu do plików tekstowych:
ogólna składnia kota to:
cat [options] [filenames] [-] [filenames]
Najczęstszym zastosowaniem cat jest czytanie zawartości plików, a cat jest często najwygodniejszym programem do tego celu. Aby otworzyć plik tekstowy do wyświetlenia na monitorze wyświetlacza, wystarczy wpisać słowo cat, spację i nazwę pliku, a następnie nacisnąć klawisz ENTER. Na przykład następujące polecenie wyświetli zawartość pliku o nazwie plik1:
cat file1
Drugą rolą kota jest konkatenacja. (To jest źródło ciekawej nazwy kota.) Nie ma wpływu na oryginalne pliki.
Na przykład następujące polecenie połączy kopie zawartości trzech plików file1, file2 i file3:
cat file1 file2 file3
Zawartość każdego pliku zostanie wyświetlona na ekranie monitora. Dane wyjściowe można równie łatwo przekierować za pomocą operatora przekierowania danych wyjściowych do innego pliku, na przykład file4, przy użyciu:
cat file1 file2 file3 > file4
Dzięki komentarzowi @muru : cat jest w stanie tworzyć nowe pliki w zależności od funkcji przekierowania powłoki, a nie od siebie
W przypadku małych plików jest to często łatwiejsze niż korzystanie z vi, gedit lub innych edytorów tekstu. Dokonuje się tego poprzez wpisanie cat, po którym następuje operator przekierowania wyjścia i nazwa tworzonego pliku, a następnie naciśnięcie ENTERi wreszcie jednoczesne naciśnięcie klawiszy Ctrl& d.
Na przykład można utworzyć nowy plik o nazwie plik1, wpisując
cat > file1
następnie naciśnij ENTERi jednocześnie naciśnij klawisze Ctrl& d.
PS1: Jeśli plik o nazwie plik1 już istnieje, zostanie zastąpiony
PS2: możesz dołączyć do wychodzącego pliku za pomocą operatora dołączającego >>
przykład cat >> plik1
Polecenia cat można także użyć (w zależności od funkcji przekierowania powłoki) do utworzenia nowego pliku i przesłania do niego danych z istniejącego pliku. Przykład: wykonaj kopię pliku oldfile.txt
:
cat oldfile.txt > newfile.txt
Bibliografia:
cat
nie tworzy tych plików - powłoka jest, gdy używasz przekierowania. Równie dobrze mógłbyś to zrobić echo foo > file1
.
cat
tego, co faktycznie robi coś innego. Na przykład, robi less file1 > file2
(albo grep '.*' file1 > file
albo awk 1 file1 > file2
albo ...) ma ten sam efekt. To samo dotyczy 4. To tylko niewłaściwe użycie.
> file
i dać taki sam wynik, ale czy nie mogę uznać za zasadne zrobić to z kotem ?!
cat
nie tworzy pliku. Powiedzenie cat
tworzy lub kopiuje plik jest po prostu fałszem.
Można go użyć do wyświetlenia zawartości pliku. Np cat "my file.txt"
. : Możesz także zrobić, man cat
aby wyświetlić szczegółowe informacje o tym, do czego cat
można użyć.
Oto inny sposób tworzenia plików przy użyciu przekierowania powłoki (lub potokowania) i cat
:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
wyświetli następujące wiersze, aż łańcuch EOF
zostanie ponownie napotkany. Następnie >
( >>
) przekieruje dane wyjściowe do pliku foo.sh
. Alternatywnie, jeśli chcesz utworzyć plik jako root, możesz przesłać dane wyjściowe do polecenia tee
( tee -a
), wykonanego przez polecenie sudo
:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x
), jeśli zostanie pomyślnie utworzony ( &&
).$
) powinno być poprzedzone znakiem (z \
) w danych wyjściowych cat
.
< <(cat file[12]) tr
a także<<<$(cat file[12]) tr
oba są doskonale poprawnymi sposobami przekierowywania wielu plików. Oczywiście, że tego potrzebujeszcat
, tylko to, że orurowanie nie jest jedynym sposobem.