У меня есть список номеров HEX от 0000 до FFFF.
Я пытаюсь разобрать список, чтобы он включал в себя только текст с 2 цифрами 0-9 и 2 буквами A-F, но мне не повезло. Я пытался egrep -v [0-9]{3}
и выводил результаты в файл, думая, что найдет любую запись без 3 чисел, а затем взял этот файл и выполнил egrep -v [0-9]{4}
против выхода из предыдущей команды, но это не работает, так как я до сих пор есть записи с 3 и 4 номерами. Я планировал также запустить egrep -v [A-F]{3}
и egrep -v [A-F]{4}
для фильтрации остального, но он все еще не работает.
Любые предложения будут с благодарностью.
Создайте файл, подобный следующему
~$ cat Patterns.txt
[0-9][0-9][A-F][A-F]
[0-9][A-F][0-9][A-F]
[0-9][A-F][A-F][0-9]
[A-F][A-F][0-9][0-9]
[A-F][0-9][A-F][0-9]
[A-F][0-9][0-9][A-F]
~$
Это пример ввода
~$ cat HEX.txt
FFFF
08FF
F0AA
FF08
0F0F
F0F0
~$
И это пример вывода
~$ grep -f Patterns.txt HEX.txt
08FF
FF08
0F0F
F0F0
Объяснение:
В вашем случае может быть только 6 возможных комбинаций
Number, Number, Letter, Letter
Number, Letter, Number, Letter
Number, Letter, Letter, Number
Letter, Letter, Number, Number
Letter, Number, Letter, Number
Letter, Number, Letter, Letter
Мы храним все эти комбинации в Patterns.txt
и просим grep использовать эти шаблоны для поиска значений. из HEX.txt