Glad it helped Samar. Yes, I am generally afraid of lookaheads and sometime not sure of why we can't just use a pattern and replace it verbatim, but this is a good case for it because you have to ensure you do not select the start of the next line in the grep search.
The thing I find hardest is remembering the syntax for lookaheads and look behinds so on Mac I use TypeIt4Me <https://ettoresoftware.store/mac-apps/typeit4me/> with shortcuts. Regards Kaveh On Sun, 21 Mar 2021 at 19:04, samar <[email protected]> wrote: > Very clever! I had not thought of using positive lookahead, but this > indeed makes GREP work here. The only thing I had to add was a tab > character before the closing parenthesis in the first search so that > similar A1 values (those beginning in the same way) will be excluded: > > ^([^\t]+)\t([^\t]+)\r(?=\1\t) > > Thanks much! > samar > On Sunday, March 21, 2021 at 1:42:16 PM UTC+1 Kaveh wrote: > >> Here is a two stage regex solution. Assuming no bullets (•) in your file, >> >> Search: ^([^\t]+)\t([^\t]+)\r(?=\1) >> replace: \1\t\2\r• >> >> Search: •[^\t]+ >> Replace with empty >> >> On Sun, 21 Mar 2021 at 08:47, Christopher Stone <[email protected]> >> wrote: >> >>> On 03/20/2021, at 15:48, John Delacour <[email protected]> wrote: >>> >>> That makes no sense to me. If the current col1 is identical to col1 of >>> the previous line, then the value will not be printed; that is the clear >>> logic of the routine. I cannot reproduce your error. >>> >>> ------------------------------ >>> >>> Hey Folks, >>> >>> I'm with JD on this one. I ran his script on a sample file, and it >>> performed as expected. >>> >>> Samar – I'd want a zipped copy of your test file that's failing to >>> test. Also - you said you're working with a *large* file. How large? >>> It makes a difference in how one approaches the problem. >>> >>> I like JD's Perl solution for this. It's neat, clean, fast, and will >>> handle big files with ease. >>> >>> If I *was* to use AppleScript I'd go this route: >>> >>> ----------------------------------------------------------- >>> # Auth: Christopher Stone <[email protected]> >>> # dCre: 2021/03/21 02:56 >>> # dMod: 2021/03/21 02:56 >>> # Appl: BBEdit >>> # Task: Massage Text of Columns A and B of a Table. >>> # Libs: None >>> # Osax: None >>> # Tags: @Applescript, @Script, @BBEdit >>> ----------------------------------------------------------- >>> >>> *set* colAStr *to* *missing value* >>> *set* {oldTIDS, AppleScript's text item delimiters} *to* {AppleScript's text >>> item delimiters, tab} >>> >>> *tell* *application* "BBEdit" *to* ¬ >>> *set* paragraphList *to* contents *of* *lines* *of* *front* >>> *document* *where* *its* contents *is* *not* "" >>> >>> *repeat* *with* i *in* paragraphList >>> *if* colAStr = *text item* 1 *of* i *then* >>> *set* contents *of* i *to* tab & *text item* 2 *of* i >>> *else* >>> *set* colAStr *to* *text item* 1 *of* i >>> *end* *if* >>> *end* *repeat* >>> >>> *set* AppleScript's text item delimiters *to* linefeed >>> *set* paragraphList *to* paragraphList *as* *text* >>> *set* AppleScript's text item delimiters *to* oldTIDS >>> >>> *tell* *application* "BBEdit" *to* ¬ >>> *set* *text* *of* *front* *document* *to* paragraphList >>> >>> ----------------------------------------------------------- >>> >>> Although it could bog down with very big files. >>> >>> >>> -- >>> Best Regards, >>> Chris >>> >>> -- >>> This is the BBEdit Talk public discussion group. If you have a feature >>> request or need technical support, please email "[email protected]" >>> rather than posting here. Follow @bbedit on Twitter: < >>> https://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 view this discussion on the web visit >>> https://groups.google.com/d/msgid/bbedit/B75B0684-484C-4034-AF69-D0731A9FE590%40gmail.com >>> <https://groups.google.com/d/msgid/bbedit/B75B0684-484C-4034-AF69-D0731A9FE590%40gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> >> >> -- >> Kaveh Bazargan PhD >> Director >> River Valley Technologies <http://rivervalleytechnologies.com/> ● Twitter >> <https://twitter.com/rivervalley1000> ● LinkedIn >> <https://www.linkedin.com/in/bazargankaveh/> ● ORCID >> <https://orcid.org/0000-0002-1414-9098> >> *Accelerating the Communication of Research* >> > -- > This is the BBEdit Talk public discussion group. If you have a feature > request or need technical support, please email "[email protected]" > rather than posting here. Follow @bbedit on Twitter: < > https://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 view this discussion on the web visit > https://groups.google.com/d/msgid/bbedit/9531484b-8ac0-4e99-b63a-0662d5b5c654n%40googlegroups.com > <https://groups.google.com/d/msgid/bbedit/9531484b-8ac0-4e99-b63a-0662d5b5c654n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Kaveh Bazargan PhD Director River Valley Technologies <http://rivervalleytechnologies.com/> ● Twitter <https://twitter.com/rivervalley1000> ● LinkedIn <https://www.linkedin.com/in/bazargankaveh/> ● ORCID <https://orcid.org/0000-0002-1414-9098> *Accelerating the Communication of Research* -- This is the BBEdit Talk public discussion group. If you have a feature request or need technical support, please email "[email protected]" rather than posting here. Follow @bbedit on Twitter: <https://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 view this discussion on the web visit https://groups.google.com/d/msgid/bbedit/CAJ2R9pj4Da3uO%3D%2Bs9fY0ugbzJiZ2gP7wSg40HHdgKjT5Dn3UcQ%40mail.gmail.com.
