imagemagic: convert +append images : передать список файлов в числовом, а не в алфавитном порядке [дубликат]

Это довольно легко сделать вawk:

awk -vtarget=fox '
    /LOCUS/ { in_gene = 1 }
    in_gene { if (gene == "") gene = $0; else gene = gene ORS $0; }
    $0 ~ target { found = 1 }
    /\/\//  { if (in_gene && found) print gene
              gene = ""; in_gene = 0; found = 0
            }
    '
  • Задайте для переменной targetстроку (имя гена ), которую вы ищете. Я использовал foxв качестве примера.
  • Когда мы видим слово LOCUS, мы знаем, что смотрим на ген.
  • Пока мы смотрим на ген, накапливаем его содержимое. Первая строка (и LOCUSстрока )просто присваиваются переменной gene. После этого мы добавляем (добавляем )текущую строку($0)к переменной geneс новой строкой (ORS=разделитель выходных записей )между старой стоимостью и добавленной стоимостью.
  • Если текущий ген содержит имя гена, которое вы ищете, установить флаг found.
  • Мы должны использовать довольно уродливое /\/\//для поиска //. Когда мы видим его, мы проверяем, является ли текущий ген тем, который мы ищем, и, если да, распечатайте его. Затем сбросьте, чтобы продолжить поиск. Если вы уверены, что искомый ген встречается только один раз в файле (или, если вам нужно только первое вхождение ), Вы можете просто выйти здесь.
33
10.05.2012, 12:28
0 ответов

Теги

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