如何获取具有特定字符的行的行号?

如何获取具有特定字符的行的行号?

我有一个人口档案,如下所示:

Pop_ID
good
HA_27
HA_14
HA_1
HA_20
HA_17
HA_26
HA_22
HA_7
HA_7
HA_16
HA_14
HA_2
HA_1
HA_11
HA_3
HA_7
HA_25
HA_23

我想打印具有特定字符的行的行号。例如,“ HA_1”,其中第 5 行和第 15 行有此字符。

5
15

答案1

awk

awk '/\<HA_1\>/{print NR}' infile

sed

sed -n '/\<HA_1\>/=' infile

答案2

使用sed

$ sed -n '/^HA_1$/=' file
5
15

sed表达式/^HA_1$/=会将=命令应用于与正则表达式匹配的所有行^HA_1$。该=命令将输出当前行号,正则表达式匹配任何唯一内容为 的行HA_1

答案3

grep+方法:

grep -wn 'HA_1' file | cut -d':' -f1

输出:

5
15

相关内容