Antworten:
sed -e "\$aTEXTTOEND" ist der einfachste Weg.
$Entspricht der letzten Zeile (es ist eine normale sedAdresse; wird 4aTEXTTOENDnach der vierten Zeile aeingefügt ), ist der Befehl append und TEXTTOENDist das, was angehängt werden soll.
sed -e '$a\NEWLINE\\'. Ersetzen Sie NEWLINE durch eine aktuelle neue Zeile.
Keine Notwendigkeit, sedin diesem Fall zu verwenden. Wie wäre es mit
echo "<?php" >> file
<php " und " >" in Klammern zu setzen und ausgewählte Inhalte auf einmal zu zitieren, sodass er wahrscheinlich wirklich ein sedFragment haben möchte .
sudo, was dazu führt, dass diese Variation fehlschlägt, da echoes sich eher um einen eingebauten Shell-Befehl als um eine ausführbare Datei handelt, die sich in$PATH
echoist eine eingebaute, aber auch eine ausführbare Datei in$PATH
Angenommen, Sie möchten den Dateien das End-PHP-Tag hinzufügen
sed -i '$s/$/\n?>/' file
sollte den Trick machen
In Ihrem Originalbeitrag finden Sie den Befehl all in one sed.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Verwenden Sie den Befehl sed 'append (a)'. Zum Beispiel, um zwei Zeilen am Ende der Datei anzuhängen:
sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
Auf einfache Weise können Sie die Änderungen des Inhalts in eine bestimmte Zeile in einer Datei schreiben und vornehmen. Wenn Sie an einer bestimmten Zeilennummer etwas einfügen möchten, können Sie den folgenden Befehl verwenden:
sed -i '2i i have started' sheikh.log
Wobei 2i- Zeile 2 und i für das Einfügen stehen. Wenn Sie in der letzten Zeile einfügen müssen, verwenden Sie $anstelle von 2. Ich habe begonnen - einzufügender Text und sheikh.logder Dateiname.
Wir können die Änderungen in der Zeile auch mit dem folgenden Befehl vornehmen
sed -i '2c we have started' sheikh.log
iwird geändert zu we.
Ich würde annehmen, dass jeder, der nach dem Einfügen / Anhängen von Text an den Anfang / das Ende einer Datei gesucht hat, wahrscheinlich auch wissen muss, wie man den anderen auch macht.
cal | \
gsed -E \
-e '1i\{' \
-e '1i\ "lines": [' \
-e 's/(.*)/ "\1",/' \
-e '$s/,$//' \
-e '$a\ ]' \
-e '$a\}'
Diese calAusgabe wird mit erweiterten RegEx ( ) und 6 angewendeten "Skripten" ( ) und aus Gründen der Lesbarkeit mit Escapezeichen versehenen Zeilenumbrüchen an gnu- sed( gsedauf MacOS aufgerufen, das über brew.sh installiert wurde ) weitergeleitet . Die Skripte 1 und 2 werden verwendet, um "in Zeile 1 einzufügen". Die Skripte 5 und 6 werden verwendet, um "in Zeile <letzte> anzuhängen". Ich habe die Textausgaben vertikal ausgerichtet, damit der Code das wiedergibt, was im Ergebnis erwartet wird. Die Skripte 3 und 4 ersetzen (letzteres gilt nur für "line <last>"). Das Ergebnis ist die Konvertierung der Befehlsausgabe in ein gültiges JSON.-E-e\1i\$a\
{
"lines": [
" October 2019 ",
"Su Mo Tu We Th Fr Sa ",
" 1 2 3 4 5 ",
" 6 7 8 9 10 11 12 ",
"13 14 15 16 17 18 19 ",
"20 21 22 23 24 25 26 ",
"27 28 29 30 31 ",
" "
]
}
{ cat file; echo 'END OF FILE'; } > newFilefunktioniert das auch dank sh. *. (Nicht sed, aber funktioniert und einfach)