Permettez-moi de commencer par mentionner que je suis nouveau dans cette programmation en fichiers de commandes. Cela dit, je voudrais fusionner deux fichiers et j'ai commencé avec le code suivant:
copy Test1.sol + Test2.sol Test.sol /B
Ce code place simplement le contenu de Test2.sol au bas de Test1.sol, ce qui n'est pas ce que je veux faire. Au lieu de cela, je voudrais mettre le contenu de Test2.sol à un endroit spécifique dans Test1.sol.
Pour le rendre plus clair. Disons que le contenu de Test2.sol est:
401 TEXT1 12345 123444
401 TEXT2 12345 123444
401 TEXT3 12345 123444
Et le contenu de Test1.sol est:
**********************
** HEADER 1 **
**********************
Message1
Message2
**********************
** HEADER 2 **
**********************
**********************
** HEADER 3 **
**********************
Message3
Message4
Comment puis-je mettre le contenu de Test1.sol sous HEADER 2 dans Test2.sol - comme les autres messages?
Merci d'avance!
batch-file
merge
EMS
la source
la source
Réponses:
Votre meilleur pari est de casser les fichiers.
Si vous ne voulez pas le casser vous avez besoin de beaucoup d'échos comme celui-ci
h1.txt
Message1
Message2
h2.txt
h3.txt
Message3
Message4
De toute évidence, vous pouvez ajouter autant de sections que vous le souhaitez. La seule astuce qui reste consiste à séparer la liste originale en fichiers individuels.
Le contenu de chaque en-tête n'est pas clair, mais je vais donner un exemple.
Cela pourrait marcher.
la source
Il existe une solution "simple" à une ligne avec JREPL.BAT - un utilitaire de traitement de texte de recherche / remplacement en ligne de commande d'expression régulière . JREPL.BAT est un script pur (batch hybride / JScript) qui s'exécute de manière native sur toute machine Windows à partir de XP - aucun fichier exe tiers n'est requis. Une documentation complète est disponible à partir de la ligne de commande via
jrepl /?
oujrepl /??
pour obtenir de l'aide paginée.Explication de son fonctionnement en marche arrière (en quelque sorte):
/f test1.sol
Spécifie le fichier d'entrée principal./o test.sol
Spécifie le fichier de sortie à créer.<test2.sol
Fournit le deuxième fichier en entrée sur stdin./inc "/...//+3"
Spécifie que la recherche / remplacement doit uniquement se produire sur la 3ème ligne après lapremière ligne "En-tête 2". Le texte entre les barres obliques est une expression régulière.
/j
Spécifie que l'argument de remplacement doit être interprété en tant que JScript."^"
L'argument de recherche est une expression régulière qui correspond au début d'une ligne."stdin..."
L'argument de remplacement est une expression JScript qui évalue le contenu entier de stdin (le deuxième fichier), plus un terminateur de ligne supplémentaire.la source