La commande linux cat peut-elle être utilisée pour écrire du texte dans un fichier?


144

Est-ce quelque chose comme ça:

cat "Some text here." > myfile.txt

Possible? De sorte que le contenu de myfile.txtserait maintenant écrasé pour:

Some text here.

Cela ne fonctionne pas pour moi, mais ne génère aucune erreur.

Particulièrement intéressé par une catsolution basée sur (pas vim / vi / emacs, etc.). Tous les exemples en ligne montrent catutilisés en conjonction avec des entrées de fichier, pas du texte brut ...

Réponses:


184

Voilà ce que echofait:

echo "Some text here." > myfile.txt

13
Bonus: echo "Some text here." >> myfile.txtajouter à la fin du fichier
Jim Aho

6
Si vous avez besoin d'utiliser des guillemets doubles dans votre texte, mettez le tout entre guillemets simples. Ceci est utile pour .json et autres, par exempleecho '{"info1": "123456"}' > info.json
bkd

165

On dirait que vous recherchez un document Here

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

Sur Linux Kernel 2.6.32 centos 6, j'ai dû omettre les >caractères pour obtenir la sortie attendue.
ecoe

4
Les >caractères représentent la valeur par défaut de $PS2; ils s'affichent automatiquement et ne sont pas destinés à être saisis. Si vous avez une valeur différente pour $PS2, cela apparaîtra à la place.
gbrener

46

Voici une autre façon -

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

10

J'utilise le code suivant pour écrire du texte brut dans des fichiers, pour mettre à jour mes paramètres CPU. J'espère que cela aide! Scénario:

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

Cela écrit le texte «performance» dans les deux fichiers mentionnés dans le script ci-dessus. Cet exemple écrase les anciennes données dans les fichiers.

Ce code est enregistré sous forme de fichier (cpu_update.sh) et pour le rendre exécutable:

chmod +x cpu_update.sh

Après cela, vous pouvez exécuter le script avec:

./cpu_update.sh

Si vous ne souhaitez pas écraser les anciennes données du fichier, désactivez

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

avec

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

Cela ajoutera votre texte à la fin du fichier sans supprimer les autres données déjà présentes dans le fichier.


8
cat > filename.txt

entrez le texte jusqu'à EOF pour enregistrer le texte utilisez: ctrl + d

si vous voulez lire ce fichier .txt, utilisez

cat filename.txt

et une chose .txt n'est pas obligatoire, c'est pour votre référence.


7

Pour le fichier texte:

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

Pour le fichier PHP:

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

5

Vous pouvez aussi le faire comme ceci:

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

Je pense qu'il existe de nombreuses façons de l'utiliser.


4

Écrivez du texte multiligne avec des variables d'environnement en utilisant echo:

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


3

Une autre façon d'écrire du texte dans un fichier en utilisant cat serait quelque chose comme ça

cat >file.txt <<< Write something here

Cette commande est vraiment utile lorsque vous essayez d'écrire la sortie d'une commande dans un fichier. Par exemple, cat > docker-inspect.txt <<< docker inspecte l'image` ``
Prasanth Ganesan

2

catpeut également être utilisé après a |pour écrire dans un fichier, c'est-à-dire que le tube alimente un flux de données


1

La solution à votre problème est:

echo "Du texte va ici"> filename.txt

Mais vous pouvez utiliser la commande cat si vous souhaitez rediriger la sortie d'un fichier vers un autre fichier ou si vous souhaitez ajouter la sortie d'un fichier à un autre fichier:

cat filename> newfile - Pour rediriger la sortie du nom de fichier vers un nouveau fichier

cat filename >> newfile - Pour ajouter la sortie du nom de fichier au nouveau fichier

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.