O comando linux cat pode ser usado para escrever texto em arquivo?


143

É algo como isto:

cat "Some text here." > myfile.txt

Possível? De modo que o conteúdo de myfile.txtagora seja sobrescrito para:

Some text here.

Isso não funciona para mim, mas também não gera erros.

Especificamente interessado em uma catsolução baseada em (não vim / vi / emacs, etc.). Todos os exemplos online são catusados ​​em conjunto com entradas de arquivo, não texto bruto ...

Respostas:


184

É o que echofaz:

echo "Some text here." > myfile.txt

13
Bônus: echo "Some text here." >> myfile.txtanexar ao final do arquivo
Jim Aho

6
Se você precisar usar aspas duplas no texto, inclua tudo entre aspas simples. Isso é útil para .json e echo '{"info1": "123456"}' > info.json
afins

164

Parece que você está procurando um documento Here

cat > outfile.txt <<EOF
>some text
>to save
>EOF

No Linux kernel 2.6.32 centos 6, tive que omitir os >caracteres para obter a saída esperada.
eCoE

4
Os >caracteres representam o valor padrão de $PS2; eles aparecem automaticamente e não devem ser digitados. Se você tiver um valor diferente para $PS2, isso será exibido.
precisa saber é o seguinte

46

Aqui está outra maneira -

cat > outfile.txt
>Enter text
>to save press ctrl-d

10

Eu uso o código a seguir para escrever texto bruto em arquivos, para atualizar minhas configurações de CPU. Espero que isso ajude! Roteiro:

#!/bin/sh

cat > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor <<EOF
performance
EOF

cat > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF
performance
EOF

Isso grava o texto "desempenho" nos dois arquivos mencionados no script acima. Este exemplo substitui dados antigos em arquivos.

Este código é salvo como um arquivo (cpu_update.sh) e para torná-lo executável:

chmod +x cpu_update.sh

Depois disso, você pode executar o script com:

./cpu_update.sh

Se você não deseja substituir os dados antigos no arquivo, desative

cat > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF

com

cat >> /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor <<EOF

Isso anexará seu texto ao final do arquivo sem remover outros dados que já estão no arquivo.


8
cat > filename.txt

insira o texto até EOF para salvar o texto: ctrl + d

se você quiser ler esse arquivo .txt, use

cat filename.txt

e uma coisa .txt não é obrigatória, é para sua referência.


7

Para arquivo de texto:

cat > output.txt <<EOF
some text
some lines
EOF

Para arquivo PHP:

cat > test.php <<PHP
<?php
echo "Test";
echo \$var;
?>
PHP

5

Você pode fazer assim também:

user@host: $ cat<<EOF > file.txt
$ > 1 line
$ > other line
$ > n line
$ > EOF
user@host: $ _

Eu acredito que existem muitas maneiras de usá-lo.


4

Escreva texto de várias linhas com variáveis ​​de ambiente usando echo:

echo -e "
Home Directory: $HOME \n
hello world 1 \n
hello world 2 \n
line n... \n
" > file.txt 


3

Outra maneira de escrever texto em arquivo usando cat seria algo como isto

cat >file.txt <<< Write something here

Este comando é realmente útil quando você está tentando gravar uma saída de um comando em um arquivo. Por exemplo, o cat > docker-inspect.txt <<< docker inspeciona a imagem ``
Prasanth Ganesan

2

cattambém pode ser usado depois de a |para gravar em um arquivo, ou seja, o feed de pipe gera um fluxo de dados


1

A solução para o seu problema é:

eco "Algum texto aparece aqui"> filename.txt

Mas você pode usar o comando cat se desejar redirecionar a saída de um arquivo para outro arquivo ou se desejar anexar a saída de um arquivo a outro arquivo:

cat filename> newfile - Para redirecionar a saída do nome do arquivo para newfile

nome do arquivo cat >> newfile - Para acrescentar a saída do nome do arquivo ao newfile

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.