J'ai un énorme fichier que j'ai besoin d'analyser. Ce que je veux faire est de séparer les lignes qui ont certaines valeurs dans une certaine colonne. Donc, c'est comme choisir seulement les données qui appartiennent à une certaine catégorie. Comment cela peut-il être accompli avec une simple commande ou script bash? Par exemple, je souhaite séparer uniquement les lignes qui ont les valeurs 1, 2, 3 ou 4 dans la 8ème colonne. Par exemple, je souhaite séparer uniquement les lignes qui ont des valeurs 1, 2 ou 4. Le fichier est délimité par un espace.Bash: comment choisir les lignes d'un fichier qui ont une valeur particulière dans la colonne
3
A
Répondre
4
Vous pouvez utiliser awk comme:
awk '$8 == 1 || $8 == 2 || $8 == 3 || $8 == 4' file
3
Utilisez awk:
awk '$8 >= 1 && $8 <= 4' your_file.txt
2
Encore une autre réponse awk.
awk '$8 ~ /[1-4]/' file
Mais, juste pour une certaine variété, une réponse bash
while read line ; do
fields=($line)
[[ ${fields[7]} =~ [1-4] ]] && echo $line
done < file
3
Encore une autre réponse AWK:
awk '$8 ~ /1|2|3|4/' inputfile
Questions connexes
- 1. Comment interroger pour les lignes qui ont une valeur plus élevée de la colonne entre les lignes qui ont la même valeur pour l'une des colonnes
- 2. SQL comment trouver les lignes qui ont la valeur la plus élevée de la colonne spécifique
- 3. Comment choisir les classes qui commencent par une chaîne particulière
- 4. obtenir la valeur de colonne particulière
- 5. Comment trouver les lignes qui ont une valeur qui contient une lettre minuscule
- 6. sélectionner uniquement les lignes si sa valeur dans une colonne particulière est inférieure à sa valeur dans l'autre colonne
- 7. Vérifiez si une chaîne particulière est dans un fichier bash
- 8. Comment supprimer la ligne si la précédente ont la même valeur dans une colonne spécifique
- 9. Pourcentage de résultats qui ont une colonne dans SQL
- 10. Les lignes manquantes dans la jointure externe ont une valeur nulle pour la colonne float au lieu de null - pourquoi?
- 11. Comment savoir si toutes les cellules ont la même valeur dans une colonne
- 12. SQL: requête qui récupère les lignes ordonnées par la valeur d'une colonne et récupère d'abord les lignes avec une valeur concrète dans cette colonne
- 13. Choisir une colonne avec une valeur par défaut ou une colonne avec une valeur définie par l'utilisateur sinon null?
- 14. Comment obtenir la valeur de colonne particulière en utilisant jquery
- 15. Concaténer les lignes dans Bash
- 16. Parcourir un groupe de contrôles sélectionnés et choisir uniquement ceux qui ont une valeur spécifique sélectionnée
- 17. En SQL, comment puis-je obtenir la ligne avec la valeur maximale pour une colonne particulière?
- 18. choisir une colonne dans Dynamiquement MySQL
- 19. Plusieurs lignes partagent une valeur dans une colonne, comment puis-je mettre toutes ces lignes dans une seule ligne?
- 20. Choisir des lignes paires d'un fichier
- 21. SQL: vérifier si une table ne contient aucune valeur nulle dans une colonne particulière
- 22. Sélectionnez toutes les entrées de table qui ont une chaîne entièrement capitalisée dans une colonne spécifique?
- 23. mysql: trouve les lignes qui ont un champ qui est une sous-chaîne de "chaîne"
- 24. choisir la valeur aléatoire
- 25. Comment changer la valeur de la valeur dans BASH?
- 26. Comment trouver la liste des procédures stockées qui affectent une colonne particulière?
- 27. Requête pour obtenir TOUTES les correspondances pour une colonne particulière
- 28. Insérer Max Valeur de la colonne dans une autre colonne
- 29. Comment sélectionner les lignes dont la valeur de colonne est égale à la valeur de la ligne connue?
- 30. SELECT pour choisir les utilisateurs qui ont tous deux affiché une page
grâce, aurait dû awk appris. semble être pratique :). – sfactor
Que diriez-vous si le fichier est gzippé et que j'ai besoin de gunzip -c fichier | ...? Je ne pouvais pas lancer la méthode awk dans le tuyau. – Ash
Si le fichier d'entrée est gzippé: gunzip -c input.gz | awk 'BEGIN {FS = "\ t"} $ 5 == "en" || 13 $ == "en" '| gzip> output.gz – Ash