Thank you Chris, Kerri and Sam. Got what I need. Much appreciated. On Thursday, May 3, 2018 at 10:16:36 PM UTC-7, Christopher Stone wrote: > > On 05/02/2018, at 12:25, Matthew London <[email protected] <javascript:>> > wrote: > > I have a file with the following: > > &&& > TEXT STRING I WANT TO KEEP > ### > TEXT STRING I WANT TO DELETE > &&& > TEXT STRING I WANT TO KEEP > etc, > > > Where there is a linebreak after &&&, ###, and all text strings > > ------------------------------ > > Hey Matthew, > > You weren't clear about whether your source text contains strings other > than &&&…keep and ###…delete, so for the moment I'll assume these two types > are the only content in the file. > > ------------------------------ > > For information on installing and using BBEdit's text filters see (here > <http://www.bbeditextras.org/wiki/index.php?title=Text_Filters>). > > ------------------------------ > > This text-filter removes all but your *keep* text. It does this by > finding your keep symbol and printing the following line. > > #!/usr/bin/env bash > sed -En '/^&&&/{n;p;}' # Print next line after found regex. > > ------------------------------ > > This text-filter prints the *keep* symbol and the following line. > > #!/usr/bin/env bash > sed -En '/^&&&/,/[^[:blank:]]/{p;}' # Print found Regex and the next line > after it. > > ------------------------------ > > Sed is very quick and efficient for this sort of job, but it's not the > only game in town. > > ------------------------------ > > This text-filter uses egrep to find the regex and the line after it. It > then uses sed to delete any record separators “--” egrep places between > found records. > > #!/usr/bin/env bash > > egrep -i -A1 "^&&&" | sed -E '/^--/d' > > Output: > > &&& > TEXT STRING I WANT TO KEEP > &&& > TEXT STRING I WANT TO KEEP > > ------------------------------ > > We can build on the above and also delete the *keep* symbol. > > #!/usr/bin/env bash > > egrep -i -A1 "^&&&" | sed -E '/^(--|&&&)/d' > > Output: > > TEXT STRING I WANT TO KEEP > TEXT STRING I WANT TO KEEP > > ------------------------------ > > Lastly I'll trot out the 900lb gorilla — Perl. > > #!/usr/bin/env perl -sw > > while (<>) { > print if $,; $, = /^&&&/ > } > > Output: > > TEXT STRING I WANT TO KEEP > TEXT STRING I WANT TO KEEP > > ------------------------------ > > #!/usr/bin/env perl -sw > > while (<>) { > print if /^&&&/; > print if $,; $, = /^&&&/ > } > > Output: > > &&& > TEXT STRING I WANT TO KEEP > &&& > TEXT STRING I WANT TO KEEP > > ------------------------------ > > -- > Best Regards, > Chris > >
-- This is the BBEdit Talk public discussion group. If you have a feature request or would like to report a problem, please email "[email protected]" rather than posting to the group. Follow @bbedit on Twitter: <http://www.twitter.com/bbedit> --- You received this message because you are subscribed to the Google Groups "BBEdit Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/bbedit.
