Вопрос: строка awk - awk concatenate


Я хотел бы awk объединить строковую переменную в awk. Как я могу это сделать? Я пытался:

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

Но я не работаю. Вывод:

0

Или я хочу добавить переменную и результат функции. Входные данные:

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

Автор сценария:

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

Вывод:

4
2
2
0#<-the last print

2
2017-08-31 07:43


Источник


С t+r вы неявно бросаете обе переменные в числа, и оба становятся равными нулю. Строки, напоминающие номера, преобразуются в числа: t="1";r="2";w=t+r;print w печать 3, - simlev


Ответы:


Оператору не требуется (или используется). Ваш пример будет чем-то вроде

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

Для смежного обсуждения


6
2017-08-31 08:00



ОК. У меня еще одна проблема. Я хотел бы сделать арифметическую операцию: b = b + gsub (key, ""). Я добавлю это в свой пост. - diego9403
@ diego9403: вместо этого ставьте вместо него новый вопрос - Thor
согласитесь - дополнение к вопросу OP использует другой аспект строк. - Thomas Dickey