REMARQUE: Cette question est le complément de ce Q & A: Comment "grep" pour la longueur de ligne dans une plage donnée?
Comment pouvons-nous chercher des lignes qui ont moins de 8 ou plus de 63 caractères, aucune qui contient plus de huit et moins de 63 caractères?
Ainsi, certains nombres de caractères acceptables pourraient être ...
7 6 5 4 3 2 1 0
...et...
64 65 66 67 ...
text-processing
grep
regular-expression
LoukiosValentine79
la source
la source
grep
, mais vous pouvez considérerawk
, surtout si vous avez besoin d'un traitement supplémentaire, etc. (très flexible et lisible ): l'awk '( length($0)<8 ) || ( length($0)>63 )'
action #default d'une condition consiste à imprimer la ou les lignes correspondant à la condition. Ou, avec moins de traitement sur 0 $:awk '{ l=length($0) ; if (( l<8 ) || l>63 ) { print $0 ;} }'
Réponses:
grep
Le-x
commutateur indique une correspondance de ligne entière - c'est-à-dire que tout modèle correspondant doit définir une ligne de la tête à la queue. Faire...... équivaut généralement à ...
grep
Le-v
commutateur annule l'influence d'un motif sur la sélection de ligne. faisant généralement ...... sélectionnera uniquement les lignes qui correspondent au modèle, mais avec un
-v
modèle annulé, seules les lignes qui ne correspondent pas sont sélectionnées....et donc...
... correspond à toutes les lignes qui se composent de la tête à la queue de n'importe où entre 8 et 63 caractères, et la
-v
sélection annuléegrep
ne fait qu'imprimer tout le reste.la source