Vérifiez la longueur du champ en utilisant awk
J'ai un fichier de 3 champs:
123710337783,351898014413150,123028040249634
123710337785,352934028758390,123028040109275
J'ai besoin de vérifier que les champs de rencontrer les longueurs suivantes:
Field 1 = 12
Field 2 = 15 or 16
Field 3 = 15
J'obtiens une erreur lors de l'exécution de cette:
awk -F, '{if(length($2) == 15 ) || length($2) == 16) && length($1) == 12 && length($3)) == 15) print }'
S'il vous plaît aider.
Bernie
source d'informationauteur bernie
Vous devez vous connecter pour publier un commentaire.
Tous vos supports sont incompatibles. Un "si", l'expression doivent être contenues dans des crochets, c'est à dire,
vous ne l'avez pas, et vous avez plus de crochets de clôture de l'ouverture des crochets - si le solde est hors tension; si nous comptons les crochets (incrémenter, décrémenter pour fermer), nous nous retrouvons avec un total de -3 au lieu de 0, de sorte que la fermeture de plus de trois supports que nous avons ouverte:
Donc, essayez plutôt ceci qui rééquilibre tout:
Si tout ce que vous allez faire est d'imprimer, puis de mettre votre expression comme la condition par défaut:
Si vous essayez de filtrer les lignes dans votre fichier d'entrée qui ne remplissent pas ces critères:
Vous avez incompatibles/asymétriques entre parenthèses au conditionnel. Essayez: