У меня есть .txt файл с образцом как после,
010.123.32.0001
010.123.32.0021
010.123.33.0001
...
010.123.33.9991
010.123.32.9012
010.123.33.0005
Я должен получить (или в другой печати слова) те последовательности, которые не являются, существуют в моем файле, я просто думаю, чтобы генерировать файл со всеми существующими последовательностями и сделать grep или awk на нем для получения тех последовательностей, которые являются, существуют в fakeGeneratedAllSequences, но не в моем реальном файле с хватанием
grep -Fvf sequences.txt fakeGeneratedAllSequences > missedSequences
Но я ищу команду, если может стать легким, это пропустило последовательности, спасибо
Это должно сделать:
grep -xvFf file.txt <(printf '%s\n' 010.123.{32..33}.{0001..9999})
printf '%s\n' 010.123.{32..33}.{0001..9999}
генерирует все возможные шаблоны (измените диапазоны для удовлетворения потребностей), расширение фигурной скобки, {start..end}
, делает расширение диапазона здесь
, вывод подается grep
как дескриптор файла, сделанный заменой процесса <()
grep
опции:
-x
делает целое соответствие строки -v
инвертирование соответствие -F
шаблон (шаблоны) обработок буквально, никакое расширение Regex не сделано -f
, берет входной набор (наборы) из файла после этого Примера опции :
% cat file.txt
010.123.32.0001
010.123.32.0021
010.123.33.0001
010.123.33.9991
010.123.32.9012
010.123.33.0005
% grep -xFf file.txt <(printf '%s\n' 010.123.{32..33}.{0001..9999})
010.123.32.0001
010.123.32.0021
010.123.32.9012
010.123.33.0001
010.123.33.0005
010.123.33.9991
% grep -xvFf file.txt <(printf '%s\n' 010.123.{32..33}.{0001..9999})
010.123.32.0002
010.123.32.0003
010.123.32.0004
010.123.32.0005
010.123.32.0006
010.123.32.0007
010.123.32.0008
010.123.32.0009
010.123.32.0010
010.123.32.0011
<truncated>