Как перебрать файл и превратить каждую строку в новое регулярное выражение в оператор awk?

FileA.txt:

ATGCATGC 
GGGGGGTT
TTTTT
AAAA

FileB.txt:

asdfasdf
blah2
ATGCATGC
blah3
blah4 
delte-me-too
GGGGGGTT
blah5
blah5
....

Я хочу сравнить каждую строку из FileA. txt и проверьте, есть ли он в FileB.txt. Если он находится в FileB, я хочу удалить следующее:

  1. Соответствующая строка

  2. Одна строка выше

  3. Две строки ниже

и вывод в новый файл.

ПРИМЕЧАНИЕ. В FileA будет 500 000 строк. Я хотел бы сделать это таким образом, чтобы мы не жестко кодировали шаблоны.

У меня сейчас есть что удалить строки, но я спотыкаюсь о цикле через FileA для создания нового шаблона для этого выражения awk:

awk '/$VARIABLE_REGEX/{for(x=NR-2;x<=NR+2;x++)d[x];} {a[NR]=$0}
END{for(i=1;i<=NR;i++)
    if(!(i in d))
        print a[i]}' FileB.txt
0
06.02.2016, 07:26
0 ответов

Теги

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