여러 열 이름의 열 위치를 얻는 방법

여러 열 이름의 열 위치를 얻는 방법

열 위치 번호를 얻고 싶은 시나리오가 있습니다

ID|NAME|S1|BQ|S2|VN|D1
1|vimal|10.12|12.4|56.2|12.2|11.22
2|vilas|10.12|12.4|56.2|12.2|11.22
3|viky|10.12|12.4|56.2|12.2|11.22

column name : S1|S2|D1

출력은 다음과 같아야 합니다.

3
5
7

아래 코드를 시도했지만 부분적으로 출력이 제공됩니다.

awk -F"|" 'NR==1{for(i=1;i<=NF;i++){print $i"=$"i}}' demo.txt | grep -E "S1|S2|D1"

S1=$3
S2=$5
D1=$7

다음 출력이 필요합니다.

3
5
7

답변1

노력하다:

$ awk -F"|" 'NR==1 {for(i=1;i<=NF;i++) if ($i=="S1" || $i=="S2" || $i=="D1" ) {print i}}' demo.txt

그런데 (방금 확인해보니)@그랜드마스터~의답변내 관점에서는 그것은 똑같은 일을 하고 더 좋아 보인다.

관련 정보