Как объединить таблицы в Linux для работы с большими данными?

Попробуйте imapsyncнаhttps://imapsync.lamiral.info/(Также доступно в AUR ). Он может легко переносить электронную почту между любыми двумя серверами imap. Он официально поддерживает большинство почтовых серверов и большинство ОС. (включая iRedMail, Gmail и Ubuntu)

Основное использование:imapsync --host1 imap.host1.com --user1 user@example.com --password1 P@ssw0rd --host2 imap.host2.com --user2 user@example.com --password2 P@ssw0rd.

-1
19.06.2020, 15:25
1 ответ

скрипт tcsh, который можно запустить с помощью " tcsh script.csh"

#script.csh

    egrep -v '==>|ID' *.matrix | sort -k2,2 -k1,1 | sed -e's/\.counts.matrix:/ /g' | sort -k2,2 -u | awk '{printf("   %s   0.0\n",$2)}' > allIDs.txt
  
    foreach xx ( ` ls -1d *.matrix ` )
      set yy = ` echo $xx | sed -e's/matrix/matrix.tmp/g' `
      cat $xx allIDs.txt | xargs -L1 | sort -k1,1 -k2,2gr | awk 'BEGIN {last="xxx"} { if ( $1 != last ) printf(" %s\n",$0) ; last=$1}' > $yy
    end

    ( echo '  ID  '; ls -1d *.counts.matrix.tmp | sed -e's/.counts.matrix.tmp//g' | sort -k1,1 ) | xargs | sed -e's/ /     /g' -e's/ID /      ID       /g' > table.txt
    egrep -v '==>|ID' *.matrix.tmp |  sort -k2,2 -k1,1 -k3,3gr | sed -e's/.counts.matrix.tmp//g'   | awk 'BEGIN {last="xxx"} { if ($2!=last) { if (last != "xxx") printf("\n"); printf("%s    ",$2);} printf("%s     ",$3); last=$2} END{printf("\n")}' >> table.txt
    unset xx yy

помещает вывод в файл "table.txt", но форматирование не очень хорошее. Записывает только максимальное из нескольких значений. Также создает ненужные файлы «.matrix.tmp» в качестве промежуточных звеньев. Быстрый сценарий, который может выполнять свою работу, но не самый лучший.

Также предполагается, что имена файлов соответствуют заголовкам столбцов в выходном файле.

1
18.03.2021, 23:26

Теги

Похожие вопросы