Итак, потратив 2 дня, я не могу решить эту проблему, и у меня почти нет времени. Это может быть очень глупый вопрос, поэтому, пожалуйста, потерпите меня. Мой awk-скрипт делает что-то вроде этого:
BEGIN{ n=50; i=n; }
FNR==NR {
# Read file-1, which has just 1 column
ids[$1]=int(i++/n);
next
}
{
# Read file-2 which has 4 columns
# Do something
next
}
END {...}
Это работает нормально. Но теперь я хочу расширить его, чтобы прочитать 3 файла. Скажем, вместо жесткого кодирования значения «n» мне нужно прочитать файл свойств и установить из него значение «n». Я нашел этот вопрос и попробовал что-то вроде этого:
BEGIN{ n=0; i=0; }
FNR==NR {
# Block A
# Try to read file-0
next
}
{
# Block B
# Read file-1, which has just 1 column
next
}
{
# Block C
# Read file-2 which has 4 columns
# Do something
next
}
END {...}
Но это не работает. Блок A выполняется для файла-0, я могу прочитать свойство из файлов свойств. Но блок B выполняется как для файлов файл-1, так и для файла-2. И блок C никогда не выполняется.
Может кто-нибудь, пожалуйста, помогите мне решить эту проблему? Я никогда раньше не использовал awk, и его синтаксис очень сбивает с толку. Кроме того, если кто-то может объяснить, как awk считывает ввод из разных файлов, это будет очень полезно.
Пожалуйста, дайте мне знать, если мне нужно добавить больше деталей к вопросу.
file 0
, а неfile 1
? - person Ed Morton   schedule 14.07.2014awk
индексирует файлы, начиная с 1 - person Bhushan   schedule 14.07.2014