Awk: объединение столбцов из файлов

У меня есть два файла, и я должен взять нужные мне столбцы из обоих файлов и объединить их вместе. Я хотел бы использовать awk для этого.

Итак, из FileB мне нужно 9-> 12 долларов. Если 4 доллара в файле А совпадают с 12 долларами в файле Б, мне понадобятся 1, 2, 3, 5 и 6 долларов из файла А.

Вот что у меня есть до сих пор:

скрипт.awk:

FNR==NR {
    blah = $12
    gsub(/"/,"",blah); gsub(/;/,"",blah);
    array[blah]=$9,$10,$11,$12  ## This breaks here
    next
}

{
    if ($4 in array) {
        print $1,"TransMap","Tcon",$2,$3,$5,$6,".",array[$4]
    }
}

Я бы запустил это так: awk -f script.awk fileB fileA Итак, обратите внимание, что $12 FileB не является точным совпадением — любые совпадения с $4 будут в следующем формате: "$4"; (отсюда и gsubs). Мне нужен этот формат, а не то, что в 4 доллара в конечном выводе, поэтому я сделал это таким образом.

Строка array[blah]=$9,$10... разрывается на awk (очевидно). Но мне нужны все 4 этих поля из FileB - как мне это исправить? Онлайн-инструкции для awk не были ясны.


person Joe    schedule 13.03.2013    source источник


Ответы (1)


пытаться

 array[blah]=$9","$10","$11","$12

я могу только предполагать проблему, не видя данных. Я думаю, вы хотите, чтобы 9-12 долларов были объединены запятой.

person Kent    schedule 13.03.2013