-1
votes

Comment utiliser plus de fichiers comme entrée?

Quel est le problème avec ce fichier s'il vous plaît? Je voudrais imprimer des minima de 70 fichiers dans le fichier min. Merci xxx

awk

2 commentaires

Vous voulez dire un minimum de 1 $ de valeur en 70 fichiers non? Si tel est le cas, alors pourquoi les comparez-vous avec A = 100000 ?


Votre question se lit comme si vous avez pris votre voiture à un mécanicien et que vous avez dit: «Quel est le problème avec cette voiture s'il vous plaît? J'aimerais le conduire au travail» au lieu de dire à votre mécanicien quoi que ce soit sur les problèmes que vous avez rencontrés avec votre voiture avec votre voiture. conduisit à lui apporter la voiture. Dites-nous quels problèmes vous rencontrez (sortie incorrecte, sans sortie, messages d'erreur, décharges de noyau, etc.) et fournissez une entrée d'échantillon concise et testable et une sortie attendue pouvant être utilisée pour reproduire votre problème et tester une solution potentielle contre.


3 Réponses :


1
votes

Pourriez-vous s'il vous plaît essayer de suivre. XXX

Si heureux avec les résultats, rediriger sa sortie sur > min selon votre code indiqué. AVERTISSEMENT FAIR Ce code n'est pas testé car aucun échantillon n'a été donné dans votre message.

explication: Ajout d'une explication au code ci-dessus. < Pré> xxx


4 commentaires

Awk: fatal: impossible d'ouvrir le fichier Fichier [01-70] .ASAS 'pour la lecture (aucun fichier ou répertoire de ce type) `Les fichiers sont des noms comme File00001, File00002 ..... File00010 ....


@Arrarra, s'il vous plaît essayez mon code modifié une fois et laissez-moi savoir que je l'ai changé à fichier {01..70} .asc .


Merci, cela fonctionne et comment imprimer au minimum de chaque fichier? Je veux dire que l'entrée sera de 70 lignes.


@Arrara, changez fin à endfile dans mon code et laissez-moi savoir alors?



2
votes

Il existe de nombreuses façons de répertorier les fichiers de 01 à 70, mais [01-70] code> n'est pas l'un d'entre eux. Considérons:

$ echo file{01..10}.asc
file1.asc file2.asc file3.asc file4.asc file5.asc file6.asc file7.asc file8.asc file9.asc file10.asc
$ for i in $(seq -w 10); do touch file$i.asc; done
$ ls 
file01.asc  file02.asc  file03.asc  file04.asc  file05.asc  file06.asc  file07.asc  file08.asc  file09.asc  file10.asc
$ ls file*.asc
file01.asc  file02.asc  file03.asc  file04.asc  file05.asc  file06.asc  file07.asc  file08.asc  file09.asc  file10.asc
$ ls file{10,0{1..9}}.asc
file01.asc  file02.asc  file03.asc  file04.asc  file05.asc  file06.asc  file07.asc  file08.asc  file09.asc  file10.asc
$ ls file[01-10].asc
ls: file[01-10].asc: No such file or directory
$ echo file[01-10].asc
file[01-10].asc


2 commentaires

Dans BASH, vous pouvez utiliser fichier {0001..0070} .asc pour formater les zéros principaux.


À Bash 4, cette expansion fonctionne, mais pas en 3.2. :(



2
votes

correct consiste à utiliser fin code> et non endfile code> comme je l'ai écrit, la solution ops devrait donc fonctionner.

awk '{f+=$1} ENDFILE {print FILENAME,"ENDFILE="f} END {print "All file END="f}' f[1-3]
f1 ENDFILE=11
f2 ENDFILE=33
f3 ENDFILE=66
All file END=66


2 commentaires

Je traversais homme awk de la version AWK 4.1 de Ubuntu et a trouvé la suite. BuTleFile et EndFile sont des modèles spéciaux supplémentaires dont les organes sont exécutés avant de lire le premier enregistrement de chaque fichier d'entrée de ligne de commande et après avoir lu le dernier enregistrement de chaque fichier. J'ai testé avec des fichiers d'échantillons qu'il imprime le nombre minimum de fichiers. en utilisant endfile après la fin de chaque fichier. Je m'excuse si j'ai raté quelque chose, je veux juste être clair sur celui-ci.


@ Ravindersingh13 J'ai vu que j'ai fait une erreur et j'ai mis à jour mon message.