regexawkripgrep

Return the context and not just the matching lines


I tried to find this string in the verse.

.* चैव यत् .*

It returned 2 lines:

अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् ।

सत्कारमानपूजार्थं तपो दम्भेन चैव यत् ।

But I need to return the complete paragraph. In this context it is the text between ॥

अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् ।
इज्यते भरतश्रेष्ठ तं यज्ञं विद्धि राजसम् ॥ 17.12॥

सत्कारमानपूजार्थं तपो दम्भेन चैव यत् ।
क्रियते तदिह प्रोक्तं राजसं चलमध्रुवम् ॥ 17.18॥

The sample text:

दृष्ट्वा तु पाण्डवानीकं व्यूढं दुर्योधनस्तदा ।
आचार्यमुपसङ्गम्य राजा वचनमब्रवीत् ॥ १-२॥

पश्यैतां पाण्डुपुत्राणामाचार्य महतीं चमूम् ।
व्यूढां द्रुपदपुत्रेण तव शिष्येण धीमता ॥ १-३॥

अन्ये च बहवः शूरा मदर्थे त्यक्तजीविताः ।
नानाशस्त्रप्रहरणाः सर्वे युद्धविशारदाः ॥ १-९॥

अपर्याप्तं तदस्माकं बलं भीष्माभिरक्षितम् ।
पर्याप्तं त्विदमेतेषां बलं भीमाभिरक्षितम् ॥ १-१०॥


अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् ।
इज्यते भरतश्रेष्ठ तं यज्ञं विद्धि राजसम् ॥ 17.12॥

अयनेषु च सर्वेषु यथाभागमवस्थिताः ।
भीष्ममेवाभिरक्षन्तु भवन्तः सर्व एव हि ॥ १-११॥

सत्कारमानपूजार्थं तपो दम्भेन चैव यत् ।
क्रियते तदिह प्रोक्तं राजसं चलमध्रुवम् ॥ 17.18॥

Update:

If I have plain text file with no line breaks like this...

दृष्ट्वा तु पाण्डवानीकं व्यूढं दुर्योधनस्तदा । आचार्यमुपसङ्गम्य राजा वचनमब्रवीत् ॥ १-२॥ पश्यैतां पाण्डुपुत्राणामाचार्य महतीं चमूम् । व्यूढां द्रुपदपुत्रेण तव शिष्येण धीमता ॥ १-३॥ अन्ये च बहवः शूरा मदर्थे त्यक्तजीविताः । नानाशस्त्रप्रहरणाः सर्वे युद्धविशारदाः ॥ १-९॥ अपर्याप्तं तदस्माकं बलं भीष्माभिरक्षितम् । पर्याप्तं त्विदमेतेषां बलं भीमाभिरक्षितम् ॥ १-१०॥ अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् । इज्यते भरतश्रेष्ठ तं यज्ञं विद्धि राजसम् ॥ 17.12॥ अयनेषु च सर्वेषु यथाभागमवस्थिताः । भीष्ममेवाभिरक्षन्तु भवन्तः सर्व एव हि ॥ १-११॥ सत्कारमानपूजार्थं तपो दम्भेन चैव यत् । क्रियते तदिह प्रोक्तं राजसं चलमध्रुवम् ॥ 17.18॥

Is it possible to extract relevant verses (17.12 and 17.18)?

अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् । इज्यते भरतश्रेष्ठ तं यज्ञं विद्धि राजसम् ॥ 17.12॥ सत्कारमानपूजार्थं तपो दम्भेन चैव यत् । क्रियते तदिह प्रोक्तं राजसं चलमध्रुवम् ॥ 17.18॥

Solution

  • Using any awk that can handle multi-byte characters, e.g. GNU awk, in paragraph mode:

    $ awk -v RS= -v ORS='\n\n' '/ चैव यत् /' file
    अभिसन्धाय तु फलं दम्भार्थमपि चैव यत् ।
    इज्यते भरतश्रेष्ठ तं यज्ञं विद्धि राजसम् ॥ 17.12॥
    
    सत्कारमानपूजार्थं तपो दम्भेन चैव यत् ।
    क्रियते तदिह प्रोक्तं राजसं चलमध्रुवम् ॥ 17.18॥