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
    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
    Aug 31, 2015 at 8:56
  • @diego9403: post it as a new question instead
    – Thor
    Aug 31, 2015 at 10:31
  • agree - the addition to OP's question exercises a different aspect of strings. Aug 31, 2015 at 19:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.