Найти имена файлов, соответствующие строкам в текстовом файле - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть текстовый файл следующим образом:

orthogroup1
orthogroup4
...

И у меня есть каталог с текстовыми файлами следующим образом:

orthogroup1.faa.reconciled
orthogroup2.faa.reconciled
orthogroup3.faa.reconciled
orthogroup4.faa.reconciled
...

Я хочу использовать текстовый файл для получениясоответствующие имена файлов в моем каталоге.

Результат должен выглядеть примерно так:

orthogroup1.faa.reconciled
orthogroup4.faa.reconciled

Как я могу это сделать?

Заранее спасибо :)

Ответы [ 3 ]

1 голос
/ 06 ноября 2019

Опция -f grep позволяет вам брать шаблоны из файла. Используйте это на выходе find, чтобы отфильтровать список:

find /path/to/dir -type f | grep -f /path/to/patterns
0 голосов
/ 06 ноября 2019

Примерно так:

suffix='.faa.reconciled'
for line in $(cat file.txt); do
    echo $line$suffix
done

Пример:

$ cat file.txt
orthogroup1
orthogroup4

$ ls -l ortho*
orthogroup4.faa.reconciled
orthogroup3.faa.reconciled
orthogroup2.faa.reconciled
orthogroup1.faa.reconciled

$ suffix='.faa.reconciled'; for line in $(cat file.txt); do echo $line$suffix; done
orthogroup1.faa.reconciled
orthogroup4.faa.reconciled
0 голосов
/ 06 ноября 2019

Можете ли вы определить, что вы подразумеваете под "получить имена файлов в моем каталоге"? Какой следующий шаг ты имеешь в виду?

Похоже, вы, вероятно, хотите использовать что-то вроде sed или awk, хотя последнее, вероятно, излишне. См. В чем разница между sed и awk? для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...