Kann der Befehl linux cat zum Schreiben von Text in eine Datei verwendet werden?

143

Ist so etwas:

cat "Some text here." > myfile.txt

Möglich? So dass der Inhalt von myfile.txtnun überschrieben würde:

Some text here.

Das funktioniert bei mir nicht, wirft aber auch keine Fehler.

Speziell interessiert an einer catLösung auf Basis (nicht vim / vi / emacs usw.). Alle Online-Beispielshows catwerden in Verbindung mit Dateieingaben verwendet, nicht mit Rohtext ...

IAmYourFaja
quelle

Antworten:

184

Das echomacht:

echo "Some text here." > myfile.txt
Carl Norum
quelle
13
Bonus: echo "Some text here." >> myfile.txtan das Ende der Datei anhängen
Jim Aho
6
Wenn Sie in Ihrem Text doppelte Anführungszeichen verwenden müssen, schließen Sie das Ganze in einfache Anführungszeichen ein. Dies ist nützlich für .json und dergleichen, zBecho '{"info1": "123456"}' > info.json
bkd
163

Klingt so, als würden Sie nach einem Here-Dokument suchen

cat > outfile.txt <<EOF
>some text
>to save
>EOF
gbrener
quelle
Unter Linux Kernel 2.6.32 Centos 6 musste ich die >Zeichen weglassen , um die erwartete Ausgabe zu erhalten.
Öko
4
Die >Zeichen stellen den Standardwert von dar $PS2; Sie werden automatisch angezeigt und sind nicht für die Eingabe vorgesehen. Wenn Sie einen anderen Wert für $PS2haben, wird dieser stattdessen angezeigt.
Gbrener
46

Hier ist ein anderer Weg -

cat > outfile.txt
>Enter text
>to save press ctrl-d
gestohlene Blätter
quelle
10

Ich benutze den folgenden Code, um Rohtext in Dateien zu schreiben und meine CPU-Einstellungen zu aktualisieren. Hoffe das hilft! Skript:

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

Dadurch wird der Text "Leistung" in die beiden im obigen Skript genannten Dateien geschrieben. In diesem Beispiel werden alte Daten in Dateien überschrieben.

Dieser Code wird als Datei (cpu_update.sh) gespeichert und zur Ausführung ausgeführt:

chmod +x cpu_update.sh

Danach können Sie das Skript ausführen mit:

./cpu_update.sh

Wenn Sie die alten Daten in der Datei nicht überschreiben möchten, wechseln Sie aus

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

mit

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

Dadurch wird Ihr Text an das Ende der Datei angehängt, ohne dass andere Daten entfernt werden, die sich bereits in der Datei befinden.

Arahkun
quelle
8
cat > filename.txt

Geben Sie den Text bis EOF ein, um den Text zu speichern. Verwenden Sie dazu: Strg + d

Wenn Sie diese TXT-Datei lesen möchten, verwenden Sie

cat filename.txt

und eine Sache .txt ist nicht obligatorisch, es dient als Referenz.

user5260939
quelle
7

Für Textdatei:

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

Für PHP-Datei:

cat > test.php <<PHP
<?php
echo "Test";
echo \$var;
?>
PHP
Le Khiem
quelle
5

Sie können es auch so machen:

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

Ich glaube, es gibt viele Möglichkeiten, es zu benutzen.

JuanToroMarty
quelle
4

Schreiben Sie mehrzeiligen Text mit Umgebungsvariablen mit echo:

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

einfach Pipeline-Echo mit Katze

Beispielsweise

echo write something to file.txt | cat > file.txt
Giannis Mpountouridis
quelle
3

Eine andere Möglichkeit, mit cat Text in eine Datei zu schreiben, wäre so etwas

cat >file.txt <<< Write something here
Giannis Mpountouridis
quelle
Dieser Befehl ist sehr nützlich, wenn Sie versuchen, eine Ausgabe eines Befehls in eine Datei zu schreiben. Zum Beispiel cat > docker-inspect.txt <<< inspizieren Docker Bild ``
Prasanth Ganesan
2

catkann auch nach a |zum Schreiben in eine Datei verwendet werden, dh Pipe füttert cat einen Datenstrom

Leahcim
quelle
1

Die Lösung für Ihr Problem lautet:

echo "Einige Texte gehen hierher"> filename.txt

Sie können den Befehl cat jedoch verwenden, wenn Sie die Ausgabe einer Datei in eine andere Datei umleiten oder die Ausgabe einer Datei an eine andere Datei anhängen möchten:

cat filename> newfile - Um die Ausgabe des Dateinamens in newfile umzuleiten

cat filename >> newfile - Zum Anhängen der Ausgabe von filename an newfile

Vipul Sharma
quelle