Gunakan OS X dalam skrip untuk menemukan string dan menambahkan baris di bawahnya termasuk karakter baris baru


4

Saya telah belajar bahwa versi sed BSD yang disertakan dengan OS X tidak memberikan cara intuitif untuk menambahkan baris baru. Saya telah menemukan beberapa catatan tentang itu, tetapi saya belum mengerti, bagaimana memperluas contoh untuk memecahkan masalah saya.

Saya perlu menambahkan beberapa baris ke file dan menemukan bahwa baris yang saya tambahkan tidak menyertakan karakter baris baru.

Script shell saya saat ini berisi yang berikut:

sed '/match string/  a\
newline string' ./inputfile > ./outputfile

Dan, saya mencoba menerapkan tip yang saya temukan di sini Baris baru dalam pada Mac OS X

Jawaban:


4

Sudahlah. Saat memformat ulang bagian kode dari pertanyaan ini, solusinya menjadi jelas:

Saya menemukan bahwa yang berikut ini melakukan apa yang saya butuhkan:

sed '/match string/  a\
newline string \
' ./inputfile > ./outputfile

1
Untuk melakukan itu pada satu baris, Anda dapat menggunakan kutipan ANSI-C untuk membatalkan penghapusan \n. Garis miring terbalik tambahan diperlukan sebelum baris baru. echo $'111\n333' | sed $'/111/a\\\n222\\\n'.
Lri
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.