كيفية إعطاء مساحة مزدوجة بين كل ثلاثة أسطر في ملف نصي باستخدام awk؟

كيف يمكنني إعطاء مساحة مزدوجة بين كل ثلاثة أسطر في ملف نصي باستخدام awk؟

عينة المدخلات:

line1
line2
line3     
line4
line5
line6
line7
----
----

إخراج العينة:

line1
line2
line3

line4
line5
line6

line7
----
----

سيكون موضع تقدير أي اقتراحات

0
ماذا حاولت؟
وأضاف المؤلف Mike Sherrill 'Cat Recall&, مصدر
twall: لن ينجح ذلك في AWK.
وأضاف المؤلف Dennis Williamson, مصدر
وأستطيع أن أعطي لكم تلميحا، ولكن يجب أن يكون بقية متروك لكم :) <�كود>. *؟ \ ن. *؟ \ ن. *؟ \ ن </القانون> سوف اعطيكم ثلاثة خطوط. الآن لديك فقط لإضافة سطر جديد آخر.
وأضاف المؤلف devsnd, مصدر
نعم ، آسف ، كنت قد وضعت في ذهني ...
وأضاف المؤلف devsnd, مصدر

1 إجابة

جرب هذا:

awk 'NR % 3 == 0 { print $0 ; print "" } NR % 3' INPUTFILE

وهناك طرق أخرى ...

0
وأضاف
شكرا جزيلا.
وأضاف المؤلف casey, مصدر
أنت على حق ، شكرا تصحيحها.
وأضاف المؤلف Zsolt Botykai, مصدر
Balint: هذا أقصر قليلاً: awk '{print}! (NR٪ 3) {print ""}' inputfile
وأضاف المؤلف Dennis Williamson, مصدر
يمكن إزالة ! = 0 و {print $ 0} لتقصير الأمر ، حيث يكون كلاهما ضمنيًا بشكل افتراضي ، مما يترك awk 'NR٪ 3 == 0 {طباعة $ 0؛ print ""} NR٪ 3 '
وأضاف المؤلف Balint, مصدر