Читайте в файле построчно и ищите в другом файле строку с частичным совпадением - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть файл с частичным совпадением строк в другом файле.Для этого я хотел создать цикл while с чтением и подстановкой переменной для каждой строки частичных совпадений в команду grep для поиска файлов базы данных с частичным совпадением, но по какой-то причине я не получаю вывод (пустой файл outputfile.txt).

Вот мой текущий скрипт

while read -r line; do
    grep $line /path/to/databasefile >> /path/to/folder/outputfile.txt
done < "/partial_matches.txt"

В базе данных есть несколько строк с именем последовательности, а затем последовательность ДНК после:

 >transcript_ab
 AGTCAGTCATGTC
 >transcript_ac
 AGTCAGTCATGTC
 >transctipt_ad
 AGTCAGTCATGTC

и файл поиска частичного соответствия содержит строки текста:

 ab
 ac

, и я ищу возвращение:

 >transcript_ab
 >transcript_ac

любая помощь будет оценена.Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Если вы используете GNU grep, то вам нужна опция -f:

grep -f /partial_matches.txt /path/to/databasefile

(если у вас нет шаблона в частичных_матчах, а есть только строкизатем используйте grep -F вместо grep)

0 голосов
/ 15 января 2019

вместо этого вы можете использовать цикл for:

for i in $(cat partial_matches.txt); do
grep $i /path/to/databasefile >> /path/to/folder/outputfile.txt
done

Также проверьте, есть ли у вас опечатка: "/partial_matches.txt" -> "./partial_matches.txt"

...