Antworten:
Mit dem folgenden Operator können Sie einer Datei eine Textzeile hinzufügen >>
:
echo "hello world" >> my_file.txt
oder in deinem Fall
echo "alias list='ls -cl --group-directories-first'" >> config.fish
Bitte beachten Sie die verschiedenen Arten von Zitaten .
-i
aktualisiert die datei (andernfalls wird nur das ergebnis in stdout ausgegeben), $
ist regex, das mit dem ende der datei a
übereinstimmt , und hängt den folgenden text an den dateinamen an.
echo "hello world" >> my_file.txt
erstellt keine neue letzte Zeile mit HW
, sondern fügt sie der Zeichenfolge der letzten Zeile hinzu.
HW
@timo?
echo
was den Zeilenumbruch hinzufügt (was es zu einer Zeile macht, im Gegensatz zu nur einer Reihe von Zeichen). Sie können den Zeilenumbruch am Ende mit ausschalten -n
.
Es gibt viele Methoden, Dateien anzufügen, ohne Texteditoren zu öffnen, insbesondere über mehrere verfügbare Textverarbeitungsprogramme in Ubuntu.
tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish
Als Ergänzung zu Stefanos Antwort können Sie auch Folgendes verwenden cat
:
Mit einem Heredoc:
$ cat >> config.fish <<'EOF'
> alias list='ls -cl --group-directories-first'
> EOF
<<'EOF'
bedeutet "Nimm das Folgende als Eingabe, bis du eine gerade Linie erreichst EOF
". Die Anführungszeichen bedeuten, die Eingabe wörtlich zu nehmen.
Oder die Zeile auf stdin eingeben:
$ cat >> config.fish
Fügen Sie dann die Zeile ein oder geben Sie sie ein, drücken Sie Enter, um zu einer neuen Zeile zu wechseln, und drücken Sie dann Strg + D, um das Ende zu markieren.
>
angibst, wird die Datei abgeschnitten und nicht angehängt. für einen sichereren befehl kannst du sed verwenden:sed -i '$a hello world' filename