Вы можете использовать at -c
и номер задания, чтобы получить содержимое сценария и либо передать его в вашу оболочку, либо повторно отправить его, а затем удалить задание с помощью atrm
.
Решение с awk
, tail
, sort
, join
и wc
.
join <(awk -F '\t' '{print $125}' file1 | tail -n +2 | sort) <(awk -F '\t' '{print $1}' file2 | tail -n +2 | sort ) | wc -l
3
Объяснение.
Это решение предполагает, что столбцы разделены табуляцией. С помощью awk
собираются 125-й столбец файла1 и первый столбец файла2. tail -n +2
удаляет первую строку собранных результатов. sort
является обязательным, так как join
предполагает упорядоченные файлы. Результирующий пересекающийся набор передается в wc
, который возвращает количество строк.
Вы близко. Попробуйте
awk 'FNR == 1 {next}; FNR==NR {P[$125]; next} $1 in P {P[$1]++} END {for (p in P) print p, P[p]+0}' file[12]
03:3304593_GA_G_1 1
01:3290834_CT_C_1 0
09:9433933_GA_G_1 1
06:6265733_GA_G_1 1
Очевидно, что не все позиции в файле1 находятся в файле2.