Saat ini saya menggunakan echo "Hello World" >> file.txt
untuk menambahkan beberapa teks ke file tetapi saya juga perlu menambahkan teks di bawah string tertentu katakanlah "[opsi]", apakah mungkin dengan sed
?
MISALNYA:
Masukkan file
Some text
Random
[option]
Some stuff
Berkas keluaran
Some text
Random
[option]
*inserted text*
Some stuff
text-processing
sed
replace
Javier Villanueva
sumber
sumber
input
-output
garisnya. Karena Anda Q tidak jelas. Anda juga bisa melakukannyaecho "Hello World [option]" >> file.txt
, tetapi itu tidak masuk akal.Jawaban:
Tambahkan baris setelah pertandingan
sed '/\[option\]/a Hello World' input
Masukkan baris sebelum pertandingan
sed '/\[option\]/i Hello World' input
Selain itu Anda dapat mengambil cadangan dan mengedit file input di tempat menggunakan
-i.bkp
opsi untuk sedsumber
sed: 1: "/pattern/a some text here": command a expects \ followed by text
\ <<NEWLINE>>
setelaha
opsi0,
ke perintah:sed '0,/\[option\]/a Hello World' input
ataused '0,/\[option\]/i Hello World' input
Ya, itu mungkin dengan
sed
:Sebuah contoh:
sumber
foo bar option bar option baz
. Jadi polanya jadifoo bar option bar option addedstring baz
?Dengan
awk
:Perlu diingat bahwa beberapa karakter tidak dapat dimasukkan secara harfiah sehingga kita harus menggunakan urutan melarikan diri (mereka mulai dengan backslash) misalnya untuk mencetak backslash literal yang harus ditulis
\\
.Ini sebenarnya sama dengan
sed
tetapi di samping itu setiap baris baru yang disematkan dalam teks harus didahului oleh garis miring terbalik:Untuk detail lebih lanjut tentang urutan melarikan diri, lihat manual.
sumber