![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Split fichier et ajoutez-tête et pied de page de chaque fichier | ashish4422 | De programmation et de script Shell | 1 | 04-15-2008 07:12 AM |
| Split d'un fichier sans motif - Split, Csplit, Awk | madhunk | UNIX pour les nuls Questions et réponses | 10 | 12-17-2007 12:57 PM |
| scinder le nom de fichier | rinku | De programmation et de script Shell | 1 | 05-28-2007 02:47 AM |
| Besoin de partager le fichier | getdpg | De programmation et de script Shell | 11 | 09-04-2006 04:08 AM |
| Comment découper le fichier de balises dans le fichier? | spookyrtd99 | De programmation et de script Shell | 1 | 07-31-2006 01:50 AM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Split fichier à l'aide de awk
Je suis en train de lire un fichier et de scinder le fichier en plusieurs fichiers. J'ai besoin de créer de nouveaux fichiers avec différents ensembles de lignes du fichier original. c'est-à-dire, le premier fichier de sortie contenant mai 10 lignes et 100 lignes de la deuxième et ainsi de suite. Les critères pour obtenir les lignes entre les deux lignes à partir de certains caractères (variable)
par exemple. Un exemple de fichier d'entrée DOC100 aaaaaa bbbbbb cccccccc FIN DOC200 ddddddd eeeeeee FIN J'ai besoin d'envoyer les lignes entre les DOC100 et FIN pour out.1 et des lignes entre DOC200 et FIN pour la prochaine out.2 J'ai pensé que je pourrais le faire en utilisant awk et j'ai essayé la commande suivante, mais cela n'a pas fonctionné. k \u003d $ filename DOC grep | cut-c4-6 awk-v cn \u003d $ k '/ DOC $ cn /, / END / (print $ 0)' $ filename> $ outfile Quelqu'un peut-il m'aider sur ce sujet? Merci |
|
||||
|
Ygor et zazzybob Merci pour votre aide. Mais je vois un problème à chacun de vos scripts.
zazzybob du script - Tout d'abord, j'ai une longueur fixe fichier de données que j'ai besoin de partager. Le script crée des fichiers séparés avec les données, mais il ignore les espaces dans les champs, les moyens qu'il concatène les champs en laissant les espaces en eux. Ygor script - Votre script crée un seul fichier DOC avec les données entre le dernier DOC / FIN. Mais il met les données, comme ce qu'elle est dans le fichier d'entrée, qui est un bon signe. |
|
|||||
|
Je n'ai pas lu le peu de noms de fichiers tels que "doc.1" avant. Essayez ce lieu ... Code:
awk '/^DOC/{f="doc."++d} f{print > f} /^END/{close f; f=""}' infile
$ Head -1000000 doc .* \u003d\u003d> Doc.1 <\u003d\u003d DOC100 aaaaaa bbbbbb cccccccc FIN \u003d\u003d> Doc.2 <\u003d\u003d DOC200 ddddddd eeeeeee FIN |
|
||||
|
zazzybob le script fonctionne bien maintenant.
Ygor script ont encore un problème. Il crée des fichiers de sortie séparés, mais maintenant il met des lignes à partir de DOC & FIN aussi dans les fichiers de sortie. J'ai juste besoin de données entre les lignes. Agin Merci pour l'aide. |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|