-2

I have a scenario where I want to get column position number

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

Output should be below:

3
5
7

I tried below code but partially provide output

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

Need output like below

3
5
7
Kusalananda
  • 333,661

1 Answers1

0

Try:

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

However (I just checked it out), @guru's answer does the same and is nicer to look at, from my point of view.

Cbhihe
  • 2,701