Eu vi o comando cat aparecer em algumas coisas on-line e fiquei curioso sobre o que catfez e para que serve no contexto de alguém que está apenas fazendo algumas coisas simples na linha de comando.
Eu vi o comando cat aparecer em algumas coisas on-line e fiquei curioso sobre o que catfez e para que serve no contexto de alguém que está apenas fazendo algumas coisas simples na linha de comando.
Respostas:
cat's principal objetivo é con gato arquivos Enate. cat file1 file2 ...mostrará o conteúdo de file, file2e 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 trutilitá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
wcque 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 - lesse moreambos são eminentemente capazes de apresentar arquivos para visualização e são muito mais convenientes de usar.
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 é:
cat [options] [filenames] [-] [filenames]
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:
cat file1
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:
cat file1 file2 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:
cat file1 file2 file3 > file4
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
cat > file1
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 >> file1
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:
cat oldfile.txt > newfile.txt
Referências:
catnão está criando esses arquivos - o shell é quando você usa o redirecionamento. Você pode ter feito bem echo foo > file1.
catque realmente está sendo feito por outra coisa. Por exemplo, fazer less file1 > file2(ou grep '.*' file1 > fileou awk 1 file1 > file2ou ...) tem o mesmo efeito. O mesmo vale para 4. Estes são apenas mau uso.
> filee dar o mesmo resultado, mas não posso considerar válido fazer isso com gato ?!
catnão está criando o arquivo. Dizer catcria 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 fazer man catpara mostrar os detalhes sobre o que catpode ser usado.
Aqui está outra maneira de criar arquivos usando o redirecionamento de shell (ou canalização) e cat:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOFproduzirá as seguintes linhas até que a sequência EOFseja encontrada novamente. Então >( >>) redirecionará a saída para o arquivo foo.sh. Como alternativa, se você precisar criar um arquivo como root, poderá canalizar a saída para o comando tee( tee -a), executado pelo comando sudo:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x) se ele for criado com sucesso ( &&).$) deve ser escapado (com \) na saída de cat.
< <(cat file[12]) trassim como<<<$(cat file[12]) tras duas maneiras perfeitamente válidas de redirecionar vários arquivos. Claro que você também precisacatdisso, apenas que a tubulação não é a única maneira.