Я хочу найти несколько слов из файла. Я использую команду grep на Linux.

grep "word1" original.file

Но есть много слов, которые нужно найти, и они находятся в "words.file". Если это возможно, я хочу дать параметр команде grep. Я передам слова, находящиеся в "words.file" команде grep в качестве параметров, и найду эти слова в "original.file"

Могу ли я сделать это ?

2 ответа2

5

man grep поможет вам: grep имеет параметр -f, который указывает, что шаблоны должны быть прочитаны из файла.

grep -f words.file original.file

Имейте в виду, что слова в words.file должны быть по одному на строку, но tr '' '\n' поможет вам в этом.

2

Пытаться

grep -e word1 -e word2 -e word3 original.file

Если вы хотите создать -e word -things из words.file попробуйте

eval $(echo -n 'grep '; while read word; do echo -n "-e '$word' "; done < words.file; echo 'original.file')

Возможно, проще и лучше (но один процесс grep на слово):

xargs -I '{}' grep -e '{}' original.file < words.file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .