Im Moment benutze ich, echo "Hello World" >> file.txt
um Text an eine Datei anzuhängen, aber ich muss auch Text unterhalb einer bestimmten Zeichenfolge hinzufügen. Sagen wir "[Option]". Ist das mit möglich sed
?
Z.B:
Eingabedatei
Some text
Random
[option]
Some stuff
Ausgabedatei
Some text
Random
[option]
*inserted text*
Some stuff
text-processing
sed
replace
Javier Villanueva
quelle
quelle
input
und dieoutput
Zeilen. Weil Sie Q ist unklar. Sie könnten es auch tunecho "Hello World [option]" >> file.txt
, aber es ergibt keinen Sinn.Antworten:
Zeile nach Übereinstimmung anhängen
sed '/\[option\]/a Hello World' input
Zeile vor dem Spiel einfügen
sed '/\[option\]/i Hello World' input
Zusätzlich können Sie ein Backup erstellen und die Eingabedatei direkt bearbeiten, indem Sie die
-i.bkp
Option sed verwendenquelle
sed: 1: "/pattern/a some text here": command a expects \ followed by text
\ <<NEWLINE>>
nach dera
Option hinzufügen0,
den Befehlen voranstellen :sed '0,/\[option\]/a Hello World' input
odersed '0,/\[option\]/i Hello World' input
Ja, das ist möglich mit
sed
:Ein Beispiel:
quelle
foo bar option bar option baz
. So wird das Musterfoo bar option bar option addedstring baz
?Mit
awk
:Denken Sie daran, dass einige Zeichen nicht wörtlich eingeschlossen werden können, sodass Sie Escape-Sequenzen verwenden müssen (sie beginnen mit einem Backslash), um beispielsweise einen wörtlichen Backslash zu drucken, den Sie schreiben müssen
\\
.Es ist eigentlich das gleiche mit,
sed
aber zusätzlich muss jeder eingebetteten Zeile im Text ein Backslash vorangestellt werden:Weitere Informationen zu Escape-Sequenzen finden Sie im Handbuch.
quelle