Il comando linux cat può essere usato per scrivere testo su file?


144

È qualcosa del genere:

cat "Some text here." > myfile.txt

Possibile? In modo tale che il contenuto di myfile.txtsarebbe ora sovrascritto a:

Some text here.

Questo non funziona per me, ma non genera errori.

Interessato in particolare a una catsoluzione basata (non vim / vi / emacs, ecc.). Tutti gli esempi online mostrano catusati insieme agli input dei file, non al testo non elaborato ...

Risposte:


184

Ecco cosa echofa:

echo "Some text here." > myfile.txt

13
Bonus: echo "Some text here." >> myfile.txtda aggiungere alla fine del file
Jim Aho,

6
Se hai bisogno di usare virgolette doppie nel tuo testo, racchiudi il tutto tra virgolette singole. Questo è utile per .json e simili, ad es.echo '{"info1": "123456"}' > info.json
bkd

165

Sembra che tu stia cercando un documento Here

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

Nel kernel Linux 2.6.32 centos 6 ho dovuto omettere i >caratteri per ottenere l'output previsto.
ecoe,

4
I >caratteri rappresentano il valore predefinito di $PS2; si presentano automaticamente e non sono pensati per essere digitati. Se hai un valore diverso per $PS2, verrà visualizzato invece.
gbrener,

46

Ecco un altro modo -

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

10

Uso il seguente codice per scrivere testo non elaborato su file, per aggiornare le mie impostazioni della CPU. Spero che questo ti aiuti! script:

#!/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

Questo scrive il testo "performance" nei due file menzionati nello script sopra. Questo esempio sovrascrive i vecchi dati nei file.

Questo codice viene salvato come file (cpu_update.sh) e per renderlo eseguibile esegui:

chmod +x cpu_update.sh

Successivamente, puoi eseguire lo script con:

./cpu_update.sh

Se non si desidera sovrascrivere i vecchi dati nel file, passare

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

con

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

Questo aggiungerà il tuo testo alla fine del file senza rimuovere quali altri dati sono già presenti nel file.


8
cat > filename.txt

inserisci il testo fino a quando EOF per salvare il testo usa: ctrl + d

se vuoi leggere quel file .txt usa

cat filename.txt

e una cosa .txt non è obbligatorio, è come riferimento.


7

Per file di testo:

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

Per file PHP:

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

5

Puoi farlo anche in questo modo:

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

Credo che ci siano molti modi per usarlo.


4

Scrivi testo su più righe con variabili d'ambiente usando echo:

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


3

Un altro modo per scrivere testo su file usando cat sarebbe qualcosa di simile

cat >file.txt <<< Write something here

Questo comando è molto utile quando si tenta di scrivere un output di un comando in un file. Ad esempio la cat > docker-inspect.txt <<< finestra mobile ispeziona l'immagine ''
Prasanth Ganesan,

2

catpuò anche essere usato in seguito a |per scrivere su un file, ad es. feed di pipe cat un flusso di dati


1

La soluzione al tuo problema è:

echo "Some Text Goes Here"> nomefile.txt

Ma puoi usare il comando cat se vuoi reindirizzare l'output di un file su qualche altro file o se vuoi aggiungere l'output di un file a un altro file:

cat nomefile> newfile - Per reindirizzare l'output del nomefile su newfile

cat nomefile >> newfile - Per aggiungere l'output del nomefile al newfile

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.