Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Please help to remove specific lines from text

Tags:

linux

sed

I need to remove :

guide_change_names \
  -design { lalala } \
  { 
     }

from text file. Rules: there should be no word between {} lalala could be any word.

Text before:

guide_change_names \
  -design { lalala } \
  { 
        ha hah haha
     }
guide_change_names \
  -design { lalala } \
  { 

     }
guide_change_names \
  -design { lalala } \
  { 
            lal lal lal
     }
guide_change_names \
  -design { lalala } \
  { 
     }

Text After:

  guide_change_names \
      -design { lalala } \
      { 
            ha hah haha
         }

    guide_change_names \
      -design { lalala } \
      { 
                lal lal lal
         }
like image 780
Igor Boguslavetz Avatar asked Mar 05 '26 23:03

Igor Boguslavetz


1 Answers

Try using GNU awk

awk 'BEGIN { RS="guide_change_names[^{]*{[^}]*}[^{]*{[ \n]*}[ \n]*" } 1' file

Here idea is to set Record Separator (RS) as the pattern to be removed.

Output:

guide_change_names \
  -design { lalala } \
  {
        ha hah haha
     }

guide_change_names \
  -design { lalala } \
  {
            lal lal lal
     }
like image 93
jkshah Avatar answered Mar 07 '26 19:03

jkshah



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!