awk решение:
Предполагая тестовый фрагмент из файла batch_1.catalog.tags.tsv
:
0 1 6 gi|586799556|ref|NW_006530744.1| 141 + consensus 0 1_33,14_43 CGGGCGGTGGTGGCGCACGCCTTTAATCCCAGCACTTGGGAGGCAGAGGCAGGTGGATCTTTGTGAGTTCGAGGCCAGCCTGGGCTACCAAGTGAGCTCC 0 0 0 0
1 2 7 hi|686711556|ref|NW_006530744.2| 141 + consensus 0 1_33,14_43 CGGGCGGTGGTGGCGCACGCCTTTAATCCCAGCACTTGGGAGGCAGAGGCAGGTGGATCTTTGTGAGTTCGAGGCCAGCCTGGGCTACCAAGTGAGCTCC 1 1 0 1
2 2 8 hi|686711556|ref|NW_006530744.2| 141 + consensus 0 1_33,14_43 CGGGCGGTGGTGGCGCACGCCTTTAATCCCAGCACTTGGGAGGCAGAGGCAGGTGGATCTTTGTGAGTTCGAGGCCAGCCTGGGCTACCAAGTGAGCTCC 1 1 1 1
3 3 9 th|776711556|ref|NW_006530744.2| 141 + consensus 1 1_33,14_43 CGGGCGGTGGTGGCGCACGCCTTTAATCCCAGCACTTGGGAGGCAGAGGCAGGTGGATCTTTGTGAGTTCGAGGCCAGCCTGGGCTACCAAGTGAGCTCC 1 0 1 1
И тестовый фрагмент из whitelight.txt
файл:
6
7
9
Команда:
awk 'NR==FNR{ a[$0]++; next }{ if ($3 in a) {
$0=">"$3 FS $4 FS $5 FS $6 FS $11 FS $12 FS $13 FS $14 RS $10; print}}' whitelist.txt batch_1.catalog.tags.tsv > cat.fa
Final cat.fa
содержимое:
>6 gi|586799556|ref|NW_006530744.1| 141 + 0 0 0 0
CGGGCGGTGGTGGCGCACGCCTTTAATCCCAGCACTTGGGAGGCAGAGGCAGGTGGATCTTTGTGAGTTCGAGGCCAGCCTGGGCTACCAAGTGAGCTCC
>7 hi|686711556|ref|NW_006530744.2| 141 + 1 1 0 1
CGGGCGGTGGTGGCGCACGCCTTTAATCCCAGCACTTGGGAGGCAGAGGCAGGTGGATCTTTGTGAGTTCGAGGCCAGCCTGGGCTACCAAGTGAGCTCC
>9 th|776711556|ref|NW_006530744.2| 141 + 1 0 1 1
CGGGCGGTGGTGGCGCACGCCTTTAATCCCAGCACTTGGGAGGCAGAGGCAGGTGGATCTTTGTGAGTTCGAGGCCAGCCTGGGCTACCAAGTGAGCTCC
Details :
NR==FNR
- выполнить действие для первого файла, т.е. whitelight.txt
a[$0]++;
- накопление чисел из файла whitelight.txt
if ($3 в a)
— разрешает действие, если значение 3-го столбца из 2-го файла совпадает с любым из накопленных чисел
RS
— разделитель записей awk, по умолчанию используется символ новой строки
Хотя это не сломает систему, вы, вероятно, захотите исключить /var/lib/pacman/sync
, где pacman хранит локально кэшированные копии индексов репозитория, которые легко регенерировать. Если вы планируете создавать резервные копии только пользовательских данных, а не всей системы, то вам абсолютно необходимо исключить /var/lib/pacman/local
, так как в ней хранится локальная база данных о том, что установлено, а что нет (. кирпичный пакман ). Это единственные два, которые я знаю, которые специфичны для Arch, но могут быть и другие, и у вас, вероятно, будут другие, в зависимости от того, какое программное обеспечение установлено. В несколько более общем замечании, многие люди, которых я знаю, выступают за то, чтобы не включать /var/log
, чтобы вы не испортили свои системные журналы при восстановлении данных, и /var/spool
, чтобы вы случайно не -долго стояли в очереди. -просроченные задания на печать или электронные письма -.
Кроме того, хотя это и не относится к Arch, вы можете безопасно исключить /tmp
, /var/tmp
, /var/cache/*/*
и /home/*/.cache
из резервных копий практически в любой системе Linux, поскольку все они должны содержать только данные, приложения могут работать без или восстанавливать себя.