Частичное совпадение строки на основе переменной AWK (если частично совпадает столбец / слово) - PullRequest
0 голосов
/ 01 января 2019

Этот вопрос возник из этого другого .

Сценарий для моего Linux shell скрипт:

$ cat test.txt
C1    C2    C3
1     a     snow
2     b     snowman
snow     c     sowman

Поиск строк с третьим полем , содержащим «снег», работает нормально:

$ awk '$3 ~/snow/' test.txt
1     a     snow
2     b     snowman

Но мне нужно сделать это с использованием переменных :

$ word="snow"

$ echo $word
snow

$ awk -v variable="snow" '$3 ~/variable/' test.txt

$ awk -v variable="$word" '$3 ~/variable/' test.txt

$

Как видно, нет результатов .

Как я могу выполнить AWK поиск на основе переменных ?

1 Ответ

0 голосов
/ 01 января 2019

Вы должны изменить $3 ~/variable/ на $3 ~ variable, поскольку /../ содержит регулярные выражения, а не переменные.Таким образом, в вашем случае он попытается найти «строку» с именем переменной, а не «переменную» с именем переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...