Saya butuh bantuan. Saya punya file seperti
sometext line 1
sometext line 2
SU0000
ID
ID
ID
sometext line 3
sometext line 4
sometext line 5
sometext line 6
SU0000
ID
ID
ID
sometext line 7
sometext line 8
Saya ingin memfilter teks sehingga hasilnya
sometext line 2
SU0000
ID
ID
ID
sometext line 6
SU0000
ID
ID
ID
Dengan kata lain, saya ingin mendapatkan garis sebelum pola dan semua garis setelah itu dimulai dengan ID
Saya ingin melakukan ini di sed. Adakah yang bisa membantu?
pattern
sini? Anda mengatakan bahwa Anda perlu garis sebelum pola diikuti oleh semua garis yang dimulai denganID
, tetapi sampel Anda habissometext line 6
Bisakah Anda menjelaskannya?Jawaban:
Kamu tidak bisa. Bukan itu yang terjadi sed dirancang untuk dilakukan.
Anda bisa melakukannya dengan grep , jika jumlah kemunculan ID telah diperbaiki. Jika bukan itu variabel, Anda akan membutuhkan sesuatu yang lebih kuat, seperti skrip bash atau perl.
Jika jumlah kemunculan ID diperbaiki (katakanlah, 3), maka perintah berikut
akan melakukan apa yang Anda butuhkan.
EDIT:
jika jumlah kemunculan SU0000 tidak diperbaiki, skrip berikut akan melakukan trik untuk Anda, di mana file yang akan diuraikan disebut "data". Ubah sesuai keinginan Anda.
Ini adalah skrip yang sangat dasar, untuk memungkinkan Anda mengikuti setiap instruksi. itu bisa sangat kental.
sumber