supposons que j'ai les fichiers
Je reçois la dernière valeur de la deuxième colonne avec un peu de formatage p> Comment puis-je le faire avec un nombre de fichiers .csv et avoir un compteur sur le dessus? p> x1 , 300
x2 , 250
x3 , 300
y1 , 270
y2 , 250
y3 , 280
3 Réponses :
Peut essayer quelque chose comme: ou peut-être: p>
Pourquoi pas analyser LS et Pour le fichier en $ (LS) code> se cassera s'il ya des espaces blanchisseurs et d'autres caractères dans les noms de fichiers et le fichier
$ $ $ code> peut conduire à des bugs. Utilisez simplement Globbing
pour fichier dans * code> et citation de vos variables.
pour fichier en $ (ls) faire si [[$ fichier == * .csv]]; code> pourquoi pas
pour i in * .csv code> en premier lieu?
Pourriez-vous s'il vous plaît essayer de suivre. Puisqu'un échantillon n'est donné que cela ne pouvait pas le tester. Mais cela devrait être plus rapide qu'un Vous trouverez les points suivants dans ce programme: em> strong> p> typo fixé par op p> p> pour code> en boucle qui traverse tous les fichiers CSV et appels
awk code> dans chaque itération.
pour code> boucle pour traverser les fichiers
.csv code>, puisque
awk code> est capable de celui-ci. LI>
x code>,
y code> des noms de fichier que j'ai ajouté cette logique aussi. LI>
commencer la section du code selon le besoin. LI>
ul>
Pour exécuter un script pour chaque fichier dans un répertoire, vous pouvez utiliser pipep les noms de fichiers et utiliser xargs -n1 code>:
si ($ 1> max) {envie = 2 $; max = 1 $} code> On dirait que vous voulez la valeur maximale, pas la dernière valeur.
@blackbaddl: Le séparateur de champ par défaut pour AWK est un espace. Si je prends votre exemple de fichier - A
Echo 'x1, 300' | awk '{improvement $ 2}' code> sortirait une virgule et non le numéro de la colonne 2e CSV.
@Kamilcuk oui vous avez raison, mais la première colonne est un compteur croissant de toute façon