ПРИМЕЧАНИЕ: этот вопрос является дополнением к этому Q & A: Как «grep» для длины линии в заданном диапазоне?
Как мы можем выполнить поиск строк, которые содержат менее 8 или более 63 символов, ни одна из которых не содержит более восьми и менее 63 символов?
Таким образом, некоторые приемлемые числа символов могут быть ...
7 6 5 4 3 2 1 0
...и...
64 65 66 67 ...
text-processing
grep
regular-expression
LoukiosValentine79
источник
источник
grep
, но вы можете подуматьawk
, особенно если вам нужна дополнительная обработка и т. Д. (Очень гибкие и удобочитаемые ):awk '( length($0)<8 ) || ( length($0)>63 )'
действие #default условия заключается в печати строки (строк), соответствующих условию. Или с меньшей обработкой на $ 0:awk '{ l=length($0) ; if (( l<8 ) || l>63 ) { print $0 ;} }'
Ответы:
grep
«S-x
переключатель обозначает целую линию матч - который должен сказать , что любой шаблон соответствует должен определить линию от головы до хвоста. делать ...... обычно эквивалентно ...
grep
«S-v
переключатель сводит на нет влияние узора на линии отбора. вообще делаешь ...... будет выбирать только те линии, которые соответствуют шаблону, но с
-v
отрицательным шаблоном выбираются только те строки, которые не соответствуют....и так...
... соответствует всем строкам от 8 до 63 символов от головы до хвоста, а
-v
отрицательный выбор приводитgrep
только к печати всего остального.источник