Dosyamın içeriği filename
aşağıdaki gibidir (örneğin):
My block of line starts from here
START
First line
second line
third line
END
and end to here for example.
Ben arasındaki satır bloğunu değiştirmek istiyor START
ve END
birlikte örneğin sadece tek kelime ile SINGLEWORD
. Aşağıdaki gibi:
My block of line starts from here
SINGLEWORD
and end to here for example.
Bu komutu kullanarak satır bloğumu bulabilirim:
grep -Pzo "START(.|\n)*END" filename
Ve yukarıdaki komutun çalıştırılmasının sonucu şöyle olacaktır:
START
First line
second line
third line
END
Sonra tüm satırları tek bir satırda birleştirmek için bu komutu kullandım:
LAST_RESULT | sed -e :a -e '/$/N; s/\n/ /; ta'
O zaman bu sonucu alacağım:
START First line second line third line END
Ve son komutumla LAST_RESULTS | sed 's/.*/SINGLEWORD/'
onları değiştiriyorum "SINGLEWORD"
ve bu sonucu elde ediyorum.
SINGLEWORD
Şimdi ne istiyorum: Bu komutu (veya öneri komutunuzu) nasıl kullanabilir ve satır bloğumu "SINGLEWORD" kelimesiyle nasıl değiştirebilirim? Ve nihai sonuç bu dosya gibi olacak:
My block of line starts from here
SINGLEWORD
and end to here for example.
sed
mümkün ama muhtemelen daha zor olmalı (Bu soruya bakın )