Печать столбцов из двух файлов - PullRequest
0 голосов
/ 29 марта 2019

Как распечатать столбцы из разных файлов? Я пытался в соответствии с Awk: извлекать разные столбцы из разных файлов

paste <(awk '{printf "%.4f   %.5f ", $1, $2}' FILE.R ) <(awk '{printf "%.6f      %.0f.\n", $3, $4}' FILE_R )

FILE.R == ARGV[1] { one[FNR]=$1 }
FILE.R == ARGV[2] { two[FNR]=$2 }
FILE_R == ARGV[3] { three[FNR]=$3 }
FILE_R == ARGV[4] { four[FNR]=$4 }

END {
    for (i=1; i<=length(one); i++) {
        print one[i], two[i], three[i], four[i]
    }
}

но я не понимаю, как использовать этот скрипт.

FILE.R

56604.6017    2.3893    2.2926    2.2033
56605.1562    2.3138    2.2172    2.2033

FILE_R

56604.6017   2.29259 0.006699      42.
56605.1562   2.21716 0.007504      40.

Требуется вывод

56604.6017    2.3893 0.006699      42.
56605.1562    2.3138 0.007504      40.

Спасибо

1 Ответ

3 голосов
/ 29 марта 2019

Это один из способов:

$ awk -v OFS="\t" 'NR==FNR{a[$1]=$2;next}{print $1,a[$1],$3,$4}' file1 file2

Вывод:

56604.6017      2.3893  0.006699        42.
56605.1562      2.3138  0.007504        40.

Объяснено:

$ awk -v OFS="\t" '       # setting the field separator to a tab
NR==FNR {                 # process the first file
    a[$1]=$2              # hash the second field, use first as key
    next
} 
{
    print $1,a[$1],$3,$4  # output 
}' file1 file2

Если интервал между вкладками недостаточен, используйтеprintf с модификаторами, как в вашем примере.

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