특정 문자가 있는 줄의 줄 번호를 얻는 방법은 무엇입니까?

특정 문자가 있는 줄의 줄 번호를 얻는 방법은 무엇입니까?

다음과 같은 인구 파일이 있습니다.

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

관련 정보