2013-03-19 5 views
-1

J'ai ces longs fichiers journaux où je dois les rechercher pour une chaîne spécifique, puis si la ligne comprend la chaîne, copiez cette ligne et collez-la dans un nouveau document. J'ai plusieurs journaux que j'ai besoin de parcourir et de comprendre si toute aide serait géniale!Comment copier une ligne d'un fichier texte et la coller dans un nouveau fichier texte basé sur une chaîne?

+0

sur quelle langue vous aviez essayé de l'accomplir? –

+0

Je n'ai pas essayé cette période. Je ne sais pas comment faire pour accomplir cette tâche – messimerdh

Répondre

0

C'est facile avec grep mais vous pouvez être sur Windows?

grep <string> <input file> >> <output file>

1

En supposant que tous les fichiers journaux sont dans le répertoire courant, quelque chose comme cela pourrait faire l'affaire:

grep 'a specific string' *.log >> log_summary.txt 

Cela ajoutera toutes les lignes correspondant de tous les fichiers journaux dans log_summary.txt. De là, vous pouvez les copier ailleurs ou faire ce que vous voulez avec eux.

+0

Que voulez-vous dire par répertoire actuel? Aussi, où irais-je sur cette ligne? Powershell, la ligne de commande ou où? – messimerdh

+0

Désolé, j'ai supposé un système d'exploitation linux ou unix-like. Essayez la solution de Christopher Ranney, exécutez en Powershell, en utilisant le paramètre -FilePath Out-fichier pour spécifier où les résultats devraient aller. – sockmonk

1

Essayez ceci.

Get-ChildItem | Foreach{Get-Content -Path $_.fullname} |Select-String "Pattern"|Out-file -FilePath C:\Temp\NewFile.log -Append -NoClobber 

Remplacer "Motif" par le texte que vous recherchez.

+0

Où est-ce que je cours cela? Y a-t-il aussi un endroit où je nomme le nouveau fichier texte? – messimerdh

+0

Bien sûr, le nouveau nom de fichier peut être modifié, modifier cette ligne -FilePath C: \ Temp \ « NewFile.log » Le nom du fichier est entre guillemets, que pour changer tout ce que vous voulez, assurez-vous de supprimer les guillemets et . Vous pouvez l'exécuter dans le répertoire dans lequel se trouvent les journaux, ou vous pouvez le pointer à l'aide du paramètre de chemin ex, Get-ChildItem -Path C: \ Temp \ LogDirectory –

Questions connexes