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.

Reply via email to