4 votes

Sortie partielle de l'écran de la ligne de commande dans un fichier

Je suis en train d'écrire un fichier journal pour une solution de sauvegarde.

La solution de secours est une simple commande de mise à jour de 7-zip.

Je voudrais savoir quels fichiers sont sauvegardés. Si j'utilise >> log.txt, j'obtiendrai le résultat, mais aussi beaucoup d'autres informations que 7-zip produit et dont je ne veux pas.

Je cherche un moyen d'enregistrer partiellement ce qui s'affiche à l'écran. Cela ne me dérange pas d'utiliser 7z ..... >templog.txt, puis de faire quelque chose à templog.txt avant de l'annexer à log.txt. Mais je ne sais pas non plus comment supprimer sélectivement des lignes de templog.txt à partir de la ligne de commande.

Donc je suppose que ma question se résume à : Comment puis-je supprimer les 10 premières lignes de templog.txt ou bien rediriger une partie seulement de la sortie à l'écran vers un fichier journal ?

Question bonus : Comment supprimer sélectivement de templog.txt ou de la redirection de sortie les lignes qui ne sont pas au début ?

2voto

Comment puis-je supprimer les 10 premières lignes de templog.txt ou alternativement rediriger seulement une partie de la sortie à l'écran vers un fichier journal ?

Voici quelques façons différentes d'accomplir ce que vous demandez omettre les lignes contenant certaines chaînes de caractères en eux avec Findstr ou bien de simplement supprimer des numéros de ligne spécifiques con SED de templog.txt avant d'ajouter ce qu'il contient au fichier journal complet de log.txt.


Utilisation de FINDSTR

Cela empêchera les chaînes entre guillemets qui se trouvent dans templog.txt d'être ajoutées à log.txt.

FINDSTR /V /I "string1 string2 string3 string4" templog.log>>log.txt

Ceci omettra les expressions régulières dans les doubles-quotes après chaque /C: qui se trouvent dans templog.txt ne sont pas ajoutés à log.txt. Il vous suffit donc de vous assurer que chaque expression régulière que vous devez faire correspondre à l'omission.

FINDSTR /V /R /C:"<regex1>" /C:"<regex2>" /C:"<regex3>" templog.log>>log.txt

Utilisation de SED

Cette opération supprimera les lignes 1 à 10 du fichier templog.txt, puis ajoutera le reste au fichier log.txt.

sed -i -e "1,10d" templog.txt

Autres ressources

1voto

PowerShell - Suppression de lignes spécifiques dans un fichier

Vous pouvez utiliser les commandes PowerShell ci-dessous pour sauter les cinq premières lignes à l'aide de l'attribut -Skip avec le paramètre Sélectionner un objet à partir du contenu du fichier templog.txt, et ensuite le mettre à jour avec tout sauf les lignes du fichier qui ont été sautées pour être omises.

(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Set-Content "C:\path\templog.txt"

Vous pouvez utiliser les commandes PowerShell suivantes à l'aide de l'option -Skip avec le paramètre Sélectionner un objet pour sauter les cinq premières lignes du templog.txt, et ensuite ajouter toutes les lignes sauf celles-ci au fichier log.txt.

(Get-Content "C:\path\templog.txt" | Select-Object -Skip 5) | Add-Content "C:\path\log.txt"

Autres ressources

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X