Gibt es eine Möglichkeit, eine Datei zu bearbeiten, wenn es keine vi, vim, joe, mcedit gibt? Mit anderen Worten, gibt es eine Möglichkeit, eine Datei nur mit den Shell-Befehlen zu bearbeiten?
linux
shell
text-editors
editing
text-editing
Eduard Florinescu
quelle
quelle
cat file
, gefolgt voncat >file
und ordnen Sie die Teile mit Ausschneiden + Einfügen und / oder Tippen an, beenden Sie mitctrl-d
.echo <<EOF > new.file [paste here] EOF
. Bearbeiten Sie den Inhalt der Datei auf dem Host-PC.Antworten:
In diesem Fall würde ich versuchen, Dateien zu übertragen und sie auf einem anderen Computer zu bearbeiten und sie dann zurück zu übertragen. Wenn du ssh hast, solltest du scp haben (hoffe ich), damit du Dateien rein und raus schieben kannst. Wenn nicht, können Sie auch nach ftp suchen, um Dateien zu übertragen.
Wenn nicht, ist es meiner Meinung nach die beste Option, cat, grep, sed, echo und die E / A-Umleitung zu verwenden (insbesondere mit anhängen
>>
). Und viele temporäre Dateien.Wenn Sie jedoch Zugriff auf Perl (oder etwas Ähnliches) haben, können Sie es ohne Argumente ausführen und eine Skriptquelle über die Standardeingabe eingeben. Sobald Sie Strg + d gedrückt haben, kann das Skript ausgeführt werden. Mit dieser Methode können Sie eine Datei erstellen. Es wäre mächtiger, als etwas auf der Kommandozeile zu hacken, wie ich bereits erwähnt habe.
quelle
Ich stelle mir vor, Sie könnten tun, was Sie brauchen,
grep
undperl
- suchen Sie nach der Zeile, mit der Sie möchtengrep
, bearbeiten Sie diese Zeile mitperl
(diesperl
kann ein großer Ersatz für seinsed
), und bestätigen Sie dann, dass Sie nicht mehr Änderungen vorgenommen haben, als Sie beabsichtigt hattendiff filename filename.new
. Wenn ja, machen Sie die Änderungen dauerhaft -mv filename.new filename
quelle
Angenommen, Sie verwenden SSH in Ihrem Router, können Sie auch verschiedene Dienstprogramme verwenden, um die Datei zurück und viertens auf Ihren Computer / Router zu übertragen. Sie können eine Kopie auf Ihren PC herunterladen, sie ändern und dann über SFTP auf den Router zurücksenden (siehe Putty oder WinSCP, wenn Sie ein Windows-Benutzer sind).
Wenn Sie jedoch eine benutzerdefinierte Firmware auf dem Router / Gateway verwenden, haben Sie möglicherweise Glück. Es gibt verschiedene Optware-Pakete, die einfache (und kleine) Texteditoren enthalten. Abhängig von Ihren Bedürfnissen können Sie das
nano
Paket erhalten oder einfach loslegenbusybox
welches es enthältvi
.quelle
Eine Möglichkeit wäre, das Ergebnis eines Echos auszugeben.
Dadurch wird eine Datei mit dem Titel "bar.yxy" mit dem enthaltenen Text "foo" erstellt.
quelle
Haben Sie / bin oder etwas ausgelöscht? Ansonsten könnten Sie vielleicht zusammen mit den Text-Dienstprogrammen in den GNU Coreutils etwas hacken , das auf einem Linux-System Standard sein sollte.
quelle