Se você quiser usar o Regex, precisará usar modificadores e âncoras adequados para obter apenas as correspondências desejadas. No seu caso, o padrão Regex 1.1.1.2
( .
significa qualquer caractere único BTW) corresponderá a todas as linhas, daí o resultado. O último é awk '"^1.1.1.2$" {print NR}'
não é como você coloca um padrão Regex em awk
- você precisa usar //
ou $<field> ~ <pattern>
.
Veja como você pode obter o resultado desejado:
-
Forma Regex: escape de todos os
.
s para tratá-los literalmente, adicione$
para corresponder ao final:awk '/1\.1\.1\.2$/ {print NR}' test.csv
-
Manipulação de strings: imprimindo o número do registro se o
,
seguido por qualquer espaço em branco separado no último campo for1.1.1.2
:awk -F ',[[:blank:]]*' '$NF == "1.1.1.2" {print NR}' test.csv