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