J'ai un grand fichier (entrée) de texte (20 Mo) avec différentes lignes de texte (y compris des lignes vides). Je voudrais un fichier batch qui puisse trouver du texte spécifique dans le fichier d'entrée, saisir la chaîne dans laquelle se trouve le terme recherché, écrire cette chaîne dans un autre fichier texte (sortie) ET ajouter cette chaîne avec un espace, une virgule et la ligne qui la suit dans le fichier d'entrée dans le fichier de sortie.fichier batch pour rechercher du texte et l'écrire dans un fichier texte
DONNEES D'ENTREE DU FICHIER:
NORTHING EASTING O-HEIGHT CODE FFF STATION STD DEV MAPPROJ
020720618 NEO 000 4829559,470, 12082011c.lst
0,015 0,015 0,015
NEO 000 020740188 4835430,827, 12082011c.lst0.009 0.009 0.009
NEO 000 020750232 4841535,651, 12082011c.lst0,004 0,004 0,004
PLH 000 020720615 N 43 36 W 15,44568 38,22754 67,892 79 32 m 0, 12082011c.lst0,014 0,014 0,014, 12082011c.lst
TERME dE RECHERCHE: "NEO"
SORTIE:
NEO 000 020720618 4.829.559,470 , 12082011c.lst, 0,015 0,015 0,015
NEO 000 020740188 4.835.430,827, 12082011c.lst, 0,009 0,009 0,009
NEO 000 020750232 4.841.535,651, 12082011c.lst, 0,004 0,004 0,004
J'ai essayé d'utiliser la findstr commande et il écrira la première partie de la ligne (NEO 000 020720618 4829559.470, 12082011c.lst) mais je n'arrive pas à comprendre comment saisir la ligne suivante et l'ajouter à la chaîne. (Les chaînes sont plus longues que ce que j'ai montré dans cet exemple, donc s'il y a une limite de caractères pour les variables s'il vous plaît faites le moi savoir). Merci, Gabe.
Batch n'est pas un bon choix pour le traitement de texte. Cela pourrait être fait, mais il sera compliqué et probablement trop lent.Si vous souhaitez utiliser des outils de script Windows natifs, il est préférable d'utiliser PowerShell, VBScript ou JScript. Si vous êtes autorisé à utiliser des outils tiers alors un utilitaire comme sed pour Windows serait parfait. (Gnu a un port de sed libre pour Windows) – dbenham
En outre, le traitement par lots ne peut traiter que des lignes d'une longueur maximale de 8191 octets. (en fait un peu moins, mais la valeur exacte dépend du code) – dbenham
Merci beaucoup pour vos commentaires. J'ai eu l'impression de marcher dans un territoire compliqué. Je suis sensible à la route de traitement par lots car elle est facilement disponible mais je peux voir qu'elle a ses limites. – Gabe