Saya punya file prova.txt
seperti ini:
Start to grab from here: 1
fix1
fix2
fix3
fix4
random1
random2
random3
random4
extra1
extra2
bla
Start to grab from here: 2
fix1
fix2
fix3
fix4
random1546
random2561
extra2
bla
bla
Start to grab from here: 1
fix1
fix2
fix3
fix4
random1
random22131
dan saya harus keluar dari "Mulai ambil di sini" ke baris kosong pertama. Outputnya harus seperti ini:
Start to grab from here: 1
fix1
fix2
fix3
fix4
random1
random2
random3
random4
Start to grab from here: 2
fix1
fix2
fix3
fix4
random1546
random2561
Start to grab from here: 1
fix1
fix2
fix3
fix4
random1
random22131
Seperti yang Anda lihat garis setelah "Mulai ambil di sini" adalah acak, jadi -B-grep flag tidak berfungsi:
cat prova.txt | grep "Start to grab from here" -A 15 | grep -B 15 "^$" > output.txt
Dapatkah Anda membantu saya menemukan cara yang menangkap baris pertama yang akan diambil (seperti "Mulai ambil dari sini"), hingga baris kosong. Saya tidak dapat memprediksi berapa banyak garis acak yang akan saya miliki setelah "Mulai ambil dari sini".
Solusi unix yang kompatibel sangat dihargai (grep, sed, awk lebih baik daripada perl atau serupa).
Diedit: setelah tanggapan brilian oleh @ john1024, saya ingin tahu apakah mungkin untuk:
1 ° urutkan blok (menurut Mulai untuk ambil dari sini: 1 lalu 1 lalu 2)
2 ° menghapus 4 (acak abjad) garis fix1, fix2, fix3, fix4 tetapi selalu 4
3 ° akhirnya menghapus dupes acak, seperti perintah sort -u
Hasil akhir harus seperti ini:
# fix lines removed - match 1 first time
Start to grab from here: 1
random1
random2
random3
random4
#fix lines removed - match 1 second time
Start to grab from here: 1
#random1 removed cause is a dupe
random22131
#fix lines removed - match 2 that comes after 1
Start to grab from here: 2
random1546
random2561
atau
# fix lines removed - match 1 first time and the second too
Start to grab from here: 1
random1
random2
random3
random4
#random1 removed cause is a dupe
random22131
#fix lines removed - match 2 that comes after 1
Start to grab from here: 2
random1546
random2561
Output kedua lebih baik dari yang pertama. Diperlukan beberapa sihir perintah unix lainnya.