Как напечатать столбцы базы данных, используя forloops в awk - PullRequest
1 голос
/ 06 октября 2011

Привет всем, кого я только начал изучать awk, и я столкнулся с проблемой, вот мои данные

    james         31 
    mary          22 
    john          28

Я хочу напечатать что-то вроде этого "Мэри возраст 22", используя для цикланаписал этот код

{
  for (i=1 ;i<=FNR ;i++)
    { 
     FNR == i {print $1 " age is " $2}  
    }
}

но это дает мне ошибку в скобках

awk: awk_script.awk: строка 5: синтаксическая ошибка в {или около:синтаксическая ошибка в или около}

пожалуйста, скажите мне, где я не прав

Ответы [ 2 ]

1 голос
/ 06 октября 2011

вам не нужно делать сложную логику для этого. посмотрите этот пример:

kent$  echo "  james         31 
dquote>     mary          22 
dquote>     john          28
dquote> "|awk 'BEGIN{OFS=" age is "}$1=$1'

james age is 31
mary age is 22
john age is 28
1 голос
/ 06 октября 2011

Вам нужно удалить цикл for. Awk делает это автоматически.

Дан файл с именами:

james,31 
mary,22 
john,28

Вам просто нужно сделать это в командной строке:

awk -F ',' 'FNR == 2 {print $1 " age is " $2}' names

Это даст

mary age is 22 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...