[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gawk] Efficient way to reverse a string
From: |
Peter Brooks |
Subject: |
Re: [bug-gawk] Efficient way to reverse a string |
Date: |
Thu, 25 Apr 2019 09:28:02 +0200 |
Yes, using it in awk is simple:
echo "The quick brown fox jumps over the lazy dog"|awk ' {rev="echo "
"\""$0"\"" "|rev";rev|getline backwards;close(rev);print backwards;}' -
On Thu, 25 Apr 2019 at 08:21, david kerns <address@hidden> wrote:
> I think he's asking in the context of an awk program...
>
> I don't think you can get away from concat w/out using printf on each
> char, maybe buffering will save you, but intuitively, I would expect better
> performance out of concat on a string with one print at the end...
>
> $ echo abcdefg 123 456 ABC | gawk '{n=split($0, a, "");for
> (i=n;i>0;i--)printf("%s",a[i]);printf("\n")}'
> CBA 654 321 gfedcba
> $ echo abcdefg 123 456 ABC | gawk
> 'BEGIN{FS=""}{for(i=NF;i>0;i--)printf("%s",$(i));printf("\n")}'
> CBA 654 321 gfedcba
>
> I would expect these concat versions to perform better, but I leave that
> as an exercise for the student ;)
>
> $ echo abcdefg 123 456 ABC | gawk 'BEGIN{FS=""}{x="";for(i=NF;i>0;i--)x=x
> $(i);print x}'
> CBA 654 321 gfedcba
>
> $ echo abcdefg 123 456 ABC | gawk '{n=split($0,a,"");for(i=n;i>0;i--)x=x
> a[i];print x}'
> CBA 654 321 gfedcba
>
> in addition to the substr() example in your referenced post
>
>
>
> On Wed, Apr 24, 2019 at 10:57 PM Peter Brooks <address@hidden>
> wrote:
>
>> Why not just use 'rev' - as an embedded command if you want the result in
>> awk:
>>
>> $ echo the quick brown fox jumps over the lazy dog|rev
>>
>> god yzal eht revo spmuj xof nworb kciuq eht
>>
>>
>> On Thu, 25 Apr 2019 at 05:06, Peng Yu <address@hidden> wrote:
>>
>> > Hi,
>> >
>> > The following way to reverse a string seems to be inefficient as it
>> > involves multiple concatenations.
>> >
>> >
>> >
>> https://www.unix.com/shell-programming-and-scripting/223077-awk-reverse-string.html
>> >
>> > Is there a more efficient way to reverse a string? Thanks.
>> >
>> > --
>> > Regards,
>> > Peng
>> >
>> >
>>
>> --
>> Peter Brooks
>>
>>
>> Mobile: +27 82 717 6404
>> Skype: Fustbariclation
>> Twitter: Fustbariclation
>> Author Page: amazon.com/author/peter_brooks
>>
>
--
Peter Brooks
Mobile: +27 82 717 6404
Skype: Fustbariclation
Twitter: Fustbariclation
Author Page: amazon.com/author/peter_brooks
- [bug-gawk] Efficient way to reverse a string, Peng Yu, 2019/04/24
- Re: [bug-gawk] Efficient way to reverse a string, Peter Brooks, 2019/04/25
- Re: [bug-gawk] Efficient way to reverse a string, Peng Yu, 2019/04/25
- Re: [bug-gawk] Efficient way to reverse a string, Peter Brooks, 2019/04/25
- Re: [bug-gawk] Efficient way to reverse a string, Peng Yu, 2019/04/25
- Re: [bug-gawk] Efficient way to reverse a string, Andrew J. Schorr, 2019/04/25
- Re: [bug-gawk] Efficient way to reverse a string, arnold, 2019/04/28