[LINUX] Calculez la valeur totale de plusieurs colonnes avec awk

1. Vérifiez le champ (élément)

Vérifiez le champ (nom de l'élément) avant awk. Le champ est généralement sur la première ligne du fichier (?), Utilisez donc less ou head pour le vérifier.

head -1 Nom de fichier

Je pense que les noms de champ sont souvent décrits avec des virgules sans sauts de ligne ni délimiteurs de tuyaux. Plutôt que de compter visuellement pour voir "le nombre de champs de la colonne cible" Il est sûr et efficace de changer le délimiteur en saut de ligne à l'aide d'un éditeur Sakura ou autre. Copiez le champ de sortie.

2. Alignez avec l'éditeur Sakura

Dans l'éditeur Sakura, Ctrl + r (remplacer), cochez Expression régulière dans la boîte de dialogue, Remplacez le délimiteur par "\ r \ n (ligne de rupture)". image.png image.png

Vous pouvez savoir quelle colonne se trouve dans le numéro de ligne.

3. (Aligner dans Excel)

Pour ceux qui n'utilisent pas Sakura Editor. Présentation de la procédure de remplacement des délimiteurs dans Excel. (* Comme les expressions régulières ne peuvent pas être utilisées dans le Bloc-notes Windows, elles ne peuvent pas être remplacées par des sauts de ligne, etc.)

Tout d'abord, collez la chaîne de caractères dans Excel. image.png Ctrl + h ou sélectionnez Remplacer depuis l'onglet Accueil> Groupe Modifier pour afficher la boîte de dialogue image.png "Chaîne de recherche": (Entrez le délimiteur) "Chaîne de caractères après remplacement": appuyez sur ** Ctrl + j ** (un symbole comme un point s'affiche, mais cela signifie un saut de ligne) Après ce qui précède, cliquez sur Remplacer tout image.png Puisqu'il est sorti dans une cellule, sélectionnez toutes les copies après être entré en mode d'édition avec F2 ou double-cliquez. Coller après avoir quitté le mode d'édition image.png Dans cet état, allez dans l'onglet Accueil> Modifier le groupe> Rechercher et sélectionnez> Sélectionner les conditions et sauter Dans la boîte de dialogue des options de sélection, sélectionnez une cellule vide et OK image.png Faites un clic droit sur la cellule vide sélectionnée> Supprimer> Sélectionnez la ligne entière et OK image.png Les données sont disposées verticalement.

4. commande awk

** Si vous voulez obtenir la somme de \ $ 40 et \ $ 50 respectivement **

Passez la valeur cated à awk avec un tuyau. ▼

cat [nom de fichier] | awk -F "," '{ print a += $40; b += $50 } END { print a, b }' |tail -1

[Explication]

  1. Obtenez toutes les données du fichier avec cat (n'oubliez pas d'utiliser zcat pour les fichiers gz)
  2. Dirigez-le vers la commande awk et utilisez l'option -F pour indiquer à la commande ce qui est utilisé comme délimiteur de fichier.
  3. L'opérateur d'addition "+ =" ajoute les opérandes gauche et droit et les assigne au côté gauche, donc "a + = \ $ 40" signifie "a = a + \ $ 40". Autrement dit, assignez "a + \ $ 40" à a et répétez jusqu'à la fin de la colonne. Terminez le processus une fois avec un point-virgule afin que b puisse faire le même processus. Terminez le traitement dans {} avec END.
  4. Imprimez a et b après END pour imprimer la valeur totale.
  5. Si cela est laissé tel quel, tous les calculs intermédiaires inutiles seront émis, alors passez-le à tail -1 et ne sortez que la dernière ligne de sorte que seule la dernière ligne soit sortie.

Recommended Posts

Calculez la valeur totale de plusieurs colonnes avec awk
Obtenez le nombre de visites sur chaque page avec ReportingAPI + Cloud Functions
Comparez la somme de chaque élément dans deux listes avec la valeur spécifiée en Python
Conversion de type de plusieurs colonnes de pandas DataFrame avec un type en même temps
L'histoire du partage de l'environnement pyenv avec plusieurs utilisateurs
Essayez d'obtenir le contenu de Word avec Golang
Obtenez l'état de fonctionnement de JR West avec Python
Ajustez le rapport de plusieurs chiffres avec le gridspec de Matplotlib
Somme de plusieurs tableaux numpy (somme)
Obtenez le nombre de chiffres
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
Obtenez le nombre d'occurrences pour chaque élément de la liste
Obtenez l'index de chaque élément de la matrice de confusion en Python
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
Récupérez la source de la page à charger indéfiniment avec python.
Obtenez le nombre de PV d'articles Qiita que vous avez publiés avec l'API
Obtenez le nombre de vues de Qiita
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Obtenir les attributs d'un objet
Obtenez le premier élément du jeu de requêtes
Obtenir l'URL du ticket JIRA créé par la bibliothèque jira-python
Extraire plusieurs colonnes spécifiques avec des pandas
Obtenez le nombre d'abonnés Youtube
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
Obtenez la largeur du div côté serveur avec Selenium + PhantomJS + Python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Lisez l'image du graphique avec OpenCV et obtenez les coordonnées du point final du graphique
Obtenez des visites d'articles et des likes avec l'API Qiita + Python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Obtenez et estimez la forme de la tête en utilisant Dlib et OpenCV avec python
Obtenez le salaire moyen d'un emploi avec des conditions spécifiées sur Indeed.com
Obtenez la valeur de retour d'un script shell externe (ls) avec python3
Alignez la taille de la barre de couleurs avec matplotlib
Obtenez la liste des colonnes et la liste des données de CASTable
Vérifier l'existence du fichier avec python
[Python] Récupère le nom de la variable avec str
Obtenez les débats parlementaires via l'API
Premiers pas avec l'outil de documentation Sphinx
La troisième nuit de la boucle avec pour
Sortez de plusieurs boucles à la fois
Obtenez la valeur de la couche intermédiaire de NN
Obtenez des vacances avec l'API Google Agenda
La deuxième nuit de la boucle avec pour
Obtenez le dernier jour du mois spécifié
[Python] Récupère le code de caractère du fichier
Obtenez le nom de fichier du répertoire (glob)
[PowerShell] Obtenez la lecture de la chaîne de caractères
Recevez beaucoup de vos tweets avec Tweepy
Compter le nombre de caractères avec écho
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
Obtenez uniquement le code source du package PyPI avec pip à partir de la ligne de commande
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
L'histoire de l'apprentissage profond avec TPU
[Python] Récupérez les fichiers dans le dossier avec Python
Remarque: préparez l'environnement de CmdStanPy avec docker