У меня есть список из 250 строк. Я должен запустить их все через веб-сервер, чтобы получить список результатов. Этот список, однако, возвращает гораздо больше строк, чем мне интересно. Скажем, my list.txt
is:
a.1
b.1
etc
тогда вывод output.txt
:
a.1 a b c
a.2 b a b
a.3 d k o
b.1 b o p
b.2 o i y
b.3 p i y
etc
Можно ли использовать команду grep для поиска всех слов в list.txt в файле output.txt, а затем сгенерировать «требуемый» список wanted.txt? Мне нужна вся строка в файле output.txt. Я новичок в скриптинге, но мне хотелось бы что-то вроде
grep list.txt output.txt > wanted.txt
Я не смог найти никаких примеров этого
Ответы:
Я бы проигнорировал
grep
это. Это хорошо для регулярных выражений, но, похоже, вам это здесь не нужно.comm
Можно сравнить два файла и показать вам пересечения. Используя ваши точные примеры:Это быстрее, чем любой другой grep, но в значительной степени зависит от сортируемых файлов. Если это не так, вы можете предварительно отсортировать их, но это изменит выходные данные, поэтому они также будут отсортированы.
Кроме того, этот ответ от iiSeymour позволит вам сделать это
grep
. Флаги запрашивают входной файл и инициируют поиск по полной строке с фиксированной строкой. Это не зависит от заказа, но будет основано наoutput.txt
заказе. Обратитесь к файлам, если вы хотите их в порядке list.txt.Если ваш
list.txt
является действительно большим, то вы , возможно , придется решать эту немного больше итеративно и передать каждую строку Grep отдельно. Это значительно увеличит время обработки. Выше вы могли бы читатьoutput.txt
один раз, но таким образом вы читали и обрабатывали его для каждой строки list.txt. Это ужасно ... Но это может быть ваш единственный выбор. С другой стороны, он сортирует вещи поlist.txt
порядку.источник
-1
подавляет строки, уникальные для первого файла,-2
подавляет строки, уникальные для второго файла, и-3
подавляет строки, общие для обоих файлов . Чтобы получить только общие черты, мы подавляем уникальность, следовательно-12
.