Eu vi o comando cat aparecer em algumas coisas on-line e fiquei curioso sobre o que cat
fez e para que serve no contexto de alguém que está apenas fazendo algumas coisas simples na linha de comando.
fonte
Eu vi o comando cat aparecer em algumas coisas on-line e fiquei curioso sobre o que cat
fez e para que serve no contexto de alguém que está apenas fazendo algumas coisas simples na linha de comando.
cat
's principal objetivo é con gato arquivos Enate. cat file1 file2 ...
mostrará o conteúdo de file
, file2
e os outros um após o outro, como se o conteúdo estivesse em um único arquivo. Veja a página de manual :
NAME
cat - concatenate and print files
Destina-se ao uso onde:
um comando de destino não pode ler dos arquivos e você precisa passar vários arquivos para ele. Um exemplo é o tr
utilitário. Normalmente, com um arquivo, você faria:
tr < file
Mas com vários arquivos, o redirecionamento não pode ser usado, então você deve fazer:
cat file1 file2 ... | tr
wc
que imprime as contagens de cada arquivo, junto com os nomes dos arquivos, nos quais você pode querer apenas o total, sem um nome de arquivo.Lembre-se que a maioria dos comandos que você encontrar ( grep
, sed
, awk
, sort
, ...) pode ler arquivos perfeitamente bem.
Se você deseja visualizar o conteúdo de um arquivo, use um pager - less
e more
ambos são eminentemente capazes de apresentar arquivos para visualização e são muito mais convenientes de usar.
< <(cat file[12]) tr
assim como<<<$(cat file[12]) tr
as duas maneiras perfeitamente válidas de redirecionar vários arquivos. Claro que você também precisacat
disso, apenas que a tubulação não é a única maneira.cat
é um dos comandos mais frequentemente usados em sistemas operacionais semelhantes ao Unix. Possui três funções relacionadas a arquivos de texto:A sintaxe geral do gato é:
Lendo arquivos
O uso mais comum do gato é ler o conteúdo dos arquivos, e o gato geralmente é o programa mais conveniente para esse fim. Tudo o que é necessário para abrir um arquivo de texto para visualização no monitor é digitar a palavra gato seguida de um espaço e o nome do arquivo e, em seguida, pressionar a tecla ENTER. Por exemplo, o seguinte exibirá o conteúdo de um arquivo chamado file1:
Concatenação
O segundo papel do gato é a concatenação. (Esta é a fonte do nome curioso do gato.) Não há efeito nos arquivos originais.
Por exemplo, o comando a seguir concatenará cópias do conteúdo dos três arquivos file1, file2 e file3:
O conteúdo de cada arquivo será exibido na tela do monitor. Essa saída poderia ser facilmente redirecionada usando o operador de redirecionamento de saída para outro arquivo, como file4, usando o seguinte:
Criação de arquivo
Graças ao comentário do @muru : cat é capaz de criar novos arquivos, dependendo do recurso de redirecionamento de shell e não ele próprio
Para arquivos pequenos, isso geralmente é mais fácil do que usar o vi, gedit ou outros editores de texto. Isso é feito digitando cat, seguido pelo operador de redirecionamento de saída e o nome do arquivo a ser criado, pressionando ENTERe finalmente pressionando simultaneamente as teclas Ctrl& d.
Por exemplo, um novo arquivo chamado file1 pode ser criado digitando
depois pressione ENTERe simultaneamente pressione as teclas Ctrle d.
PS1: se um arquivo chamado file1 já existir, ele será substituído
PS2: você pode anexar ao arquivo encerrado usando o
>>
exemplo de operador acréscimo cat >> file1Copiar arquivos
O comando cat também pode ser usado ( dependendo do recurso de redirecionamento de shell) para criar um novo arquivo e transferir para ele os dados de um arquivo existente. Exemplo: faça uma cópia do arquivo
oldfile.txt
:Referências:
fonte
cat
não está criando esses arquivos - o shell é quando você usa o redirecionamento. Você pode ter feito bemecho foo > file1
.cat
que realmente está sendo feito por outra coisa. Por exemplo, fazerless file1 > file2
(ougrep '.*' file1 > file
ouawk 1 file1 > file2
ou ...) tem o mesmo efeito. O mesmo vale para 4. Estes são apenas mau uso.> file
e dar o mesmo resultado, mas não posso considerar válido fazer isso com gato ?!cat
não está criando o arquivo. Dizercat
cria ou copia o arquivo é simplesmente falso.Pode ser usado para mostrar o conteúdo de um arquivo. Por exemplo:
cat "my file.txt"
. Você também pode fazerman cat
para mostrar os detalhes sobre o quecat
pode ser usado.fonte
Aqui está outra maneira de criar arquivos usando o redirecionamento de shell (ou canalização) e
cat
:cat << EOF
produzirá as seguintes linhas até que a sequênciaEOF
seja encontrada novamente. Então>
(>>
) redirecionará a saída para o arquivofoo.sh
. Como alternativa, se você precisar criar um arquivo como root, poderá canalizar a saída para o comandotee
(tee -a
), executado pelo comandosudo
:chmod +x
) se ele for criado com sucesso (&&
).$
) deve ser escapado (com\
) na saída decat
.fonte