On Thu, Nov 9, 2023, 8:36 PM Steffen Nurpmeso <stef...@sdaoden.eu> wrote:

> alex xmb sw ratchev wrote in
>  <caalkere1uq1xmxw_8zdij2ggz-gxb9s9pa5f43vyonvktmr...@mail.gmail.com>:
>  ...
>  |> So i did that (what a mess -- does anyone know how i can create an
>  |> awk regular expression where parts of the expression is a variable
>  |> that should be expanded?  ugh!  what do i know??):
>  |
>  |awk -v var1='cont ent' -vv2="$other' ' { code } '
>  |
>  |keep in mind that mass spawning of any bin is , when its done massley ,
>  |very out ..
>
> i fail to see what this has to do with my problem.
>
>  |also var so awk processes some \esc caracters
>  |to cleanly insert data , either use gawk ENVIRON["varname']
>  |or via alternative fd or as part of file parse things
>
>  |my='a b c'
>  |# one line string
>  |awk 3<<<"$my thing' BEGIN { f = "/dev/fd/3" ; getline v <f ; close( f ) }
>  |other main code here '
>
> i am still wondering.
>
>  |foo=content
>  |export foo
>  |or foo=$foo gawk ..
>  |gawk -vv=foo ' BEGIN { v = ENVIRON[ v ] } other code '
>  |same as v = ENVIRON[ "v" ] or "varname"
>
> wow.
>
>  |to match in string , thers two ways , one is exact text match , the other
>  |is regex
>  |
>  |if u /foo/ thats a regex
>
> really?
>
>  |$0 ~ "foo"
>  |
>  |tx=" my text "
>  |if ( $0 ~ "pre" tx "stu" ) { ye }
>
> this does not work the way you think maybe?
> I surely was there myself.
>
>  |thers additional stuff to say containing substr() and match() , and some
>
> even with match() not (in a global match line).
>
>  |others
>  |
>  |#exact
>  |etx = " exact "
>  |if ( index( $0 , etx ) ) { ye }
>  |if ( index( $0 , "pre" etx "stu" ) ) { ye }
>
> i am really impressed.
> But that did not work out.
>

can u detail ur case some
i suggest using index
if u match or ~ u regex
means ur input s gotta get regex char escaped
unless u have a very special reason , use index
and not care about awk var \esc seq expandment
at least when have simple strings

eg

m=bar txt=' foo
 bar
bla '
awk -vm="$m" ' index( $0 , m ) '

should return the bar line
' bar ' would also match
'  bar  ' of course not

--steffen
> |
> |Der Kragenbaer,                The moon bear,
> |der holt sich munter           he cheerfully and one by one
> |einen nach dem anderen runter  wa.ks himself off
> |(By Robert Gernhardt)
>

Reply via email to