0
votes

Distribuer des données dans l'ordre d'incrément et de décrément

J'ai un fichier qui possède n nombre de lignes, je souhaite que les données soient distribuées dans 7 fichiers conformément à la commande ci-dessous

** Mon fichier d'entrée a n nombre de lignes, ceci est juste un exemple. p>

fichier d'entrée p> xxx pré>

fichier de sortie p> xxx pré>

donc si j'ouvre le premier fichier, il devrait avoir des lignes P>

1  2  3  4  5  6  7
8  9  10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28


2 commentaires

Remplacer le . . Dans votre exemple d'entrée avec des valeurs réelles, nous avons donc quelque chose à tester une solution potentielle contre sans avoir à faire cela fonctionner nous-mêmes. Fixez également le 1 \ n5 \ n dans vos données. Vous pouvez en faire un exemple brièvement de toute façon.


Débarrassez-vous du bloc qui commence par fichier de sortie - c'est un énorme hareng rouge qui peut amener les gens à penser que vous souhaitez que vous souhaitiez un tel fichier de sortie et que vous nous conduisez donc de créer des solutions que vous n'avez pas besoin.


4 Réponses :


2
votes

éditer: em> strud> car op a modifié l'échantillon d'entrée_file totalement différent de sorte que l'ajout de cette solution maintenant, encore une fois, c'est écrit et testé avec des échantillons indiqués uniquement.

> avec xargs code> + simple awk code>: em> strong> (recommandé) p>

awk '{for(i=1;i<=NF;i++){print $i >> (i".txt");close(i".txt")}}' Input_file


10 commentaires

@ Ravindersingh13- Il ne donne aucune sortie.


@LAXMIDEVI, cela a fonctionné bien pour moi pour un exemple donné (il crée des fichiers tels que 1.Txt, 2.txt, etc.) est votre input_file_Fe_Fe_file identique à celle indiquée des échantillons?


Ce n'est pas la division de fichiers en 7 partie, la sortie que nous obtenons n'est pas correcte.


@LAXMIDEVI, si je lisez votre question correctement, vous voulez que la colonne de sortie du fichier soit sise sur la droite? Je veux dire toutes les 1ères colonnes de toutes les lignes dans 1.TXT toutes les 2nd colonnes de 2.txt et ainsi de suite de vos échantillons, on ressemble à cela. S'il vous plaît confirmer une fois?


@LAXMIDEVI, Votre question est complètement modifiée maintenant, nous devons ajouter une autre solution maintenant toutes ensemble.


@LaxMidevi, pourriez-vous s'il vous plaît vérifier mon édition SOLUTION et LEMME savoir si cela vous aide?


Merci Ravinder, mais cela ne distribue pas la sortie dans 7 fichiers différents comme demandé ci-dessus.


@LAXMIDEVI, non claire, la sortie est disponible dans votre formulaire affiché, pourriez-vous mettre à jour votre question car Édition Solution donne une sortie selon des échantillons montrés, veuillez mettre à jour votre question et votre lemme savoir alors.


@ Ravindersingh13- J'ai raffiné ma question, chaque fichier devrait donc avoir des lignes aussi demandées dans la question, donc si j'ouvre le premier fichier, il devrait énumérer `` `` `1 14 15 28` `` `


@LaxMidevi, pourriez-vous s'il vous plaît faites-moi savoir si Modifier la solution a fonctionné pour vous?



0
votes

Ceci pourrait fonctionner pour vous (GNU SED & Parallel):

for ((n=1,m=14;n<=7;n++,m--));do echo "$n~14w file$n";echo "$m~14w file$n";done |
sed -nf - file && 
paste file{1..7}


0 commentaires

1
votes
$ ls
file        te12342.txt te12344.txt te12346.txt tst.awk
te12341.txt te12343.txt te12345.txt te12347.txt

$ cat te12341.txt
1
14
15
28

$ cat te12342.txt
2
13
16
27

0 commentaires

2
votes

Le compteur de fichiers de sortie pourrait descendre pour chaque deuxième groupe de sept: xxx


0 commentaires