Выходной файл не генерируется при использовании регулярных выражений внутри скрипта bash (file.sh) при попытке сравнить гигантский список с маленьким - PullRequest
0 голосов
/ 31 октября 2019

У меня есть следующий список с тысячами записей, которые я называю большим списком, который содержит ваши записи (слова), разделенные |. Я пытаюсь использовать file.sh для извлечения только тех слов, которые также находятся в file.txt, см. File.sh ниже. Я пытался выполнить файл сценария bash (file.sh) со следующим содержимым:

egrep -vi '(?:$|^| )(... biglist ...)(?:$|^| )' file.txt > output.txt

Но выходной файл не создается, он просто показывает мне весь большой список вмоя оболочка терминала. Я тестировал файл file.sh со списком из двух или более слов, и это сработало. Является ли проблема в количестве тысяч слов в биг-листе проблемой?

Например, если мой file.txt содержит слово sun, а мой биг-лист содержит только sun и bike, то приведенный ниже код работает

egrep -vi '(?:$|^| )(bike | sun)(?:$|^| )' file.txt > output.txt

И содержимое файла output.txt будет sun только

...