Wie lösche ich in einer Textdatei vorhandenen Text, ohne ihn zu öffnen?
Ich meine zum Beispiel, ich habe eine Datei wie hello.txt
mit einigen Textdaten darin, und wie kann ich den gesamten Text in dieser Datei löschen, ohne sie zu öffnen?
Damit meine ich, keinen Editor wie Nano, Gedit usw. zu verwenden.
command-line
bash
rɑːdʒɑ
quelle
quelle
Antworten:
Öffne einfach dein Terminal mit CTRL+ ALT+ Tund tippe als
Das war's, Ihre Daten in dieser Datei werden gelöscht, ohne sie zu öffnen.
Beispiel:
quelle
stdout
überschreibt die vorhandene Datei, falls vorhanden. In diesem Fall gibt es nichts anstdout
. Daher wird die Datei mit ungültigen Daten überschrieben, wobei im Wesentlichen alle vorherigen Daten gelöscht werden.Der einfachste Weg, eine Datei zu kürzen, besteht darin, die Ausgabe des Shell-Befehls no-op (
:
) auf die zu löschende Datei umzuleiten .quelle
>
), aber mit Sicherheit das schnellste. Ich frage mich, warum es in keiner der Antworten auf diese häufig gestellte Frage erwähnt wurde. Nehmen Sie hier +1.Ich werde auch die Umleitung wie die Antwort von rajagenupula verwenden. Es gibt aber etwas mehr Flexibilität. Öffnen Sie ein Terminal und geben Sie Folgendes ein:
Und drücken Sie Ctrl+ C. Die vorherige Datei wird gelöscht. Wenn Sie so viel wollen, ist es in Ordnung.
Wenn Sie möchten, können Sie nach dem Löschen der Datei noch etwas tun. Auf diese Weise können Sie nicht nur eine Datei löschen, ohne sie zu öffnen, sondern auch einige Zeilen mit der richtigen Formatierung in die Datei schreiben. Angenommen, Sie möchten nach dem Löschen der Datei "Ubuntu ist das beste Betriebssystem" schreiben
Drücken Sie dann Ctrl+ C. Jetzt wird die vorherige Datei gelöscht. Gleichzeitig stehen die Wörter in zwei Zeilen, wie ich sie ausdrückte.
Siehe das Beispiel:
quelle
>
steht für Umleitung.cat > file
schreibtstdout
in die Datei und überschreibt alle vorhandenen Dateien.Ich muss dies die ganze Zeit mit Protokolldateien tun. Der einfachste Weg, den ich gefunden habe, ist mit dem folgenden Befehl:
Dadurch wird der gesamte Inhalt der Datei gelöscht, und Sie haben eine leere Datei, ohne dass Sie diese in einem Editor öffnen müssen. Wählen Sie Text aus. Insbesondere wird der Inhalt der Datei durch den Inhalt von "/ dev / null" oder durch nichts ersetzt. Eigentlich ist es ziemlich glatt.
Die einzige Einschränkung ist, dass der Benutzer, als der Sie gerade angemeldet sind, Schreibrechte für diese Datei haben muss.
quelle
Wenn eine Datei mit dem Namen erstellt wurde hello.txt und wurde mit einigen Texten dann den folgenden Befehl im Terminal zur Verfügung gestellt ctrl+ alt+ twerden alle den Text in der entfernen hello.txt Datei,
quelle
Ein weiterer Ansatz -
cp
die/dev/null
auf die Dateiquelle
Nicht die kürzeste Antwort, aber ...
Diese Antwort basiert auf einer anderen Antwort von Super User . Obwohl dies nicht der kürzeste Bash-Befehl ist,
truncate
ist er für durchschnittliche Neulinge am besten lesbar:Parameter, die mit dem
truncate
Befehl hier verwendet werden:Löschen Sie alles außer den ersten 10.000 Bytes
Ein Vorteil von
truncate
ist, dass Sie angeben können, wie viel aufbewahrt werden soll, und nicht nur Null:... schneidet alles nach den ersten 10.000 Bytes ab. Dies kann nützlich sein, wenn ein Programm durchgedreht ist und viele Megabyte Daten in eine kleine Protokolldatei geschrieben hat:
truncate
Befehl für eine vernünftig größere normale Größe von 10 KB ausquelle
Ich sehe also eine Menge Weiterleitungen, um dies zu beantworten;)
Ein etwas anderer Ansatz mit der Combo: rm & touch
( Ja ... noch ein Betrüger! )
Mit dieser Befehlskombination wurde also die Datei hello.txt nicht geöffnet und am Ende haben Sie immer noch die Datei hello.txt an ihrer Stelle, deren Inhalt gelöscht wurde. So wie du es wolltest!
quelle
arbeitete am besten für mich wegen der besonderen Erlaubnis, die es hatte
quelle
vi
ist und was die verschiedenen Parameter und Argumente bewirken.