6

I would like to awk concatenate string variable in awk. How can I do that? I tried:

BEGIN{
t="."
r=";"
w=t+r
print w}

But I does't work. Output:

0

Or I want to add variable and result of function. Input:

t t t t
a t a ta
ata ta a a

Script:

{
key="t"
print gsub(key,"")#<-it's work
b=b+gsub(key,"")#<- it's something wrong
}
END{
print b}#<-so this is 0

Output:

4
2
2
0#<-the last print
1
  • With t+r you implicitly cast both variables to numbers, and both become zero. Strings resembling numbers are converted to numbers: t="1";r="2";w=t+r;print w prints 3.
    – simlev
    Commented Apr 12, 2018 at 13:01

1 Answer 1

11

No operator is needed (or used). Your example would be something like

BEGIN{
t="."
r=";"
w=t r
print w}

For related discussion

3
  • Ok. I have one more problem. I would like to make arithmetic operation: b=b+gsub(key,""). I will add this in my post.
    – diego9403
    Commented Aug 31, 2015 at 8:56
  • @diego9403: post it as a new question instead
    – Thor
    Commented Aug 31, 2015 at 10:31
  • agree - the addition to OP's question exercises a different aspect of strings. Commented Aug 31, 2015 at 19:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .