On Thu, Nov 9, 2023, 8:41 PM alex xmb sw ratchev <fxmb...@gmail.com> wrote:
> > > 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 ) ' > sorry missed again a detail awk -vm="$m" ' index( $0 , m ) ' <<<"$txt" 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) >> >