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 ...

IAmYourFaja
la source

Réponses:

184

Voilà ce que echofait:

echo "Some text here." > myfile.txt
Carl Norum
la source
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
gbrener
la source
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
stolen_leaves
la source
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.

Arahkun
la source
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.

user5260939
la source
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
Le Khiem
la source
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.

JuanToroMarty
la source
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 
nsantana
la source
3

simplement l'écho du pipeline avec le chat

Par exemple

echo write something to file.txt | cat > file.txt
Giannis Mpountouridis
la source
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
Giannis Mpountouridis
la source
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

Leahcim
la source
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

Vipul Sharma
la source