awk, чтобы найти номер строки полного совпадения строки

avatar
Eng-Mohammed Kayed
8 августа 2021 в 23:23
54
1
0

Мне нужно найти номер строки полного и точного совпадения строки:

Пример:

stackflow
stack
stackflow123
stackflow 123

Если строковое значение равно "stackflow", мне нужен код, который возвращает 1 и игнорирует остальные, поскольку строки не совпадают точно.

Я попробовал следующее, но требуется небольшая корректировка, чтобы оно работало только для точного совпадения при использовании переменных:

awk -v x="$line" '$0~x {print NR}' file
Источник
Mark Setchell
9 августа 2021 в 00:05
0

Возможно, используйте $0==x.

Daweo
9 августа 2021 в 07:26
0

А если таких строк несколько? Должны ли быть напечатаны все совпадающие номера строк или только первые из них?

Ответы (1)

avatar
James Brown
9 августа 2021 в 07:37
0

Если строковое значение равно "stackflow", мне нужно, чтобы код возвращал 1 и игнорировал остальные, поскольку строки не совпадают точно:

$ line=stackflow 
$ awk -v s="$line" '$0==s{print NR;exit 1}' file

Вывод:

1

Выходное значение:

$ echo $?
1