0
votes

Opération arithmétique sur la colonne de fichier texte

J'ai quatre colonnes dans mon fichier texte. Je dois prendre la valeur moyenne de la quatrième colonne correspondant à la deuxième colonne et enregistrer la sortie dans un autre fichier qui ne contiendra que deux colonnes avec des résultats moyens. Veuillez aider

awk '{total+= $4} END {print total/NR}' inputfilename.txt


5 commentaires

Qu'avez-vous déjà essayé?


Je reçois la moyenne de la colonne entière en une fois à l'aide de: //////wk '{Total + = $ 4} fin {IMPRIMER TOPT / NR}' INPUTFILENAME.TXT //////// que j'ai besoin d'appliquer la condition .


Quelle est la sortie attendue pour l'entrée donnée?


Si l'entrée est une longueur fixe (toutes les touches de l'octet 5..10), vous pouvez extraire ces touches avec couper et faire une boucle de temps avec Grep pour chaque clé.


Il n'est pas fixé parfois, il enregistre chaque seconde de données afin que les données soient énormes.


3 Réponses :


1
votes

Utilisez deux tableaux, un pour les sommes; un pour compter le nombre de chiffres qui leur sont ajoutés. À la fin du fichier Imprimer def code> S et des moyennes correspondantes.

56700 -74.8
56701 -87.05
56702 -75.6333


4 commentaires

Merci pour votre réponse. Pouvez-vous expliquer la syntaxe s'il vous plaît.


@preeti Lire manuel GAWK à la place. Parce qu'il n'y a pas d'astuce syntaxique dans la commande ci-dessus, tout est simple


Merci@ismail va faire ça. Je suis débutant et je voulais traiter mes données.


@Peeti c'est toute une autre question. et je ne sais rien sur le complot



0
votes

Vous pouvez également envisager d'utiliser une langue plus puissante, spécialement si vous devez faire plus de choses de fantaisie.

E.g. python xxx


0 commentaires

0
votes

Parce que vos tags d'origine incluent Bash, voici un exemple avec Bash et le BC -Tool (pas un code à une ligne, mais parfois d'espoir d'apprendre à apprendre Bash) : xxx

BC utilisé avec paramètre - MathLib Utilisez une échelle de 20. Si nécessaire ou si vous le souhaitez, vous pouvez utiliser un Échelle supérieure et réduire les décimales uniquement à l'impression du résultat.

Cette solution avec deux boucles (une pour les touches et l'autre par clé) n'est acceptable que si vos linémanes du fichier entrées ne sont pas trop grandes (je n'utilise pas cet exemple pour millions de lignes), Mais il est plus lisible comme un code d'une ligne (surtout pour les débutants).


0 commentaires