1-е решение: Не могли бы вы попробовать следующее.
awk '
FNR==1{
for(i=1;i<=NF;i++){
array[i]=$i
}
}
{
for(i=1;i<=NF;i++){
if($i=="statistics"){
print "Line number is: " FNR ", column number is: "i ",column heading is:" array[i]
}
}
}
' Input_file
2-е решение: Использование переменная, которая будет иметь значение строки, которую мы хотим найти.
awk -v word="statistics" '
FNR==1{
for(i=1;i<=NF;i++){
array[i]=$i
}
}
{
for(i=1;i<=NF;i++){
if($i==word){
print "Line number is: " FNR ", column number is: "i",column heading is:" array[i]
}
}
}' Input_file
Над обоими решениями будет напечатан номер строки вместе с номером столбца.
3-е решение: Чтобы напечатать только номер столбца, попробуйте следующее:
awk 'FNR==1{for(i=1;i<=NF;i++){array[i]=$i}} {for(i=1;i<=NF;i++){if($i=="statistics"){print i,array[i]}}}' Input_file
4-е решение: вариант 3-го решения с переменный подход.
awk -v word="statistics" 'FNR==1{for(i=1;i<=NF;i++){array[i]=$i}}{for(i=1;i<=NF;i++){if($i==word){print i,array[i]}}}' Input_file
ПРИМЕЧАНИЕ:
- 1-е и 2-е решение даст номер строки, номер столбца и имя заголовка.
- 3-е и 4-е решение дадут номер столбца и имя заголовка.