Ben böyle bir dosya var prova.txt
:
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
ve "Burada yakalamaya başla" dan ilk boş satıra geçmeliyim. Çıktı şöyle olmalıdır:
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
Gördüğünüz gibi "Buradan yakalanmaya başlayın" dan sonraki satırlar rastgele, yani -A -B grep bayrağı çalışmıyor:
cat prova.txt | grep "Start to grab from here" -A 15 | grep -B 15 "^$" > output.txt
Boş bir satıra kadar yakalanacak ilk satırı yakalayacak bir yol bulmama yardım edebilir misin ("Buradan tutmaya başla" gibi). "Buradan almayı başlat" dan sonra kaç tane rastgele çizgim olacağını tahmin edemiyorum.
Herhangi bir unix uyumlu çözüm takdir edilmektedir (grep, sed, awk perl ya da benzerinden daha iyidir).
DÜZENLENEN: @ john1024 tarafından mükemmel yanıttan sonra, mümkün olup olmadığını bilmek istiyorum:
1 ° bloğu sıralayın (Buradan almaya başlayın: 1 sonra 1 sonra 2)
2 ° kaldır 4 (alfabetik olarak rastgele) satırları fix1, fix2, fix3, fix4 ama her zaman 4
3 ° sonunda sort -u komutu gibi rastgele dupesleri kaldırın
Nihai çıktı şu şekilde olmalıdır:
# 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
veya
# 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
İkinci çıktı birinciden daha iyidir. Başka bir unix komut sihri gereklidir.