Commandes Windows PowerShell pour obtenir la commande Unix Tail
-
tail
dans Win 32 pour obtenir la fonction de commande Unixtail
-
Windows PowerShell avec
Get-Content
pour obtenir la fonction de commande Unixtail
-
Windows PowerShell avec
Cat
pour réaliser la fonction de commande Unixtail
Le système d’exploitation Unix contient la commande tail
. Le but du programme tail
est d’afficher la fin d’un fichier texte/données canalisées.
La sortie attendue est les dernières lignes d’un fichier. Le nombre de lignes peut être modifié. La même commande peut être utilisée avec plusieurs fichiers à la fois pour imprimer la sortie standard.
Outre Unix, la commande tail
prend en charge les systèmes de type Unix et les systèmes FreeDOS et MSX-DOS.
Dans Windows PowerShell, la version Windows d’une application multiplateforme, les commandes shell de ligne de commande peuvent être exécutées pour réaliser l’automatisation dans différentes fonctionnalités. Cependant, les commandes utilisées ici diffèrent des commandes de script standard utilisées dans les systèmes de type Unix.
Il existe plusieurs façons acceptables de faire une fonction similaire tail
dans Windows PowerShell.
tail
dans Win 32 pour obtenir la fonction de commande Unix tail
L’un des moyens courants d’obtenir cette fonctionnalité serait d’utiliser le programme tail-f
pour Windows PowerShell ; Queue pour Win32. Il suit toutes les modifications de fichiers et permet à l’utilisateur de suivre les modifications en temps réel. Cependant, il oblige les utilisateurs à utiliser entièrement un autre programme, disponible via le lien : https://tailforwin32.sourceforge.net. Par conséquent, ce n’est pas une solution appropriée pour un utilisateur qui recherche une alternative spécifique à PowerShell pour le système Windows.
Cependant, il existe également des solutions acceptables basées sur PowerShell pour cela.
Windows PowerShell avec Get-Content
pour obtenir la fonction de commande Unix tail
L’un des plus efficaces consiste à utiliser Get-Content
. Il doit être suivi de -Tail n
, n étant le nombre de lignes que vous devez obtenir en sortie.
Dans les versions antérieures de Windows Power Shell, V1 et V2, cette fonctionnalité était obtenue via la commande Get-Content
suivie de la commande -Wait
. Si le fichier change en temps réel, la commande Wait
est utilisée afin que tout changement puisse être suivi.
Get-Content .\DummyLogFile.txt
Ici, la sortie obtiendrait le contenu de l’ensemble du fichier, comme indiqué ci-dessous. Il commence dès les premières lignes du fichier journal et se poursuit jusqu’à la fin.
2021-12-31 14:49:47, Info CBS TI: --- Initializing Trusted Installer ---
2021-12-31 14:49:47, Info CBS TI: Last boot time: 2021-12-31 12:41:44.516
2021-12-31 14:49:47, Info CBS Startup processing thread terminated normally
2021-12-31 14:49:47, Info CBS TI: Startup Processing completes, release startup processing lock.
.
.
Cependant, les modifications en temps réel de la fin du fichier peuvent être suivies lorsqu’elles sont utilisées avec - Wait
.
Get-Content .\DummyLogFile.txt -Wait
Ici, la sortie contiendrait toutes les données du fichier et attendrait les modifications ci-dessous.
2021-12-31 14:49:47, Info CBS TI: --- Initializing Trusted Installer ---
2021-12-31 14:49:47, Info CBS TI: Last boot time: 2021-12-31 12:41:44.516
2021-12-31 14:49:47, Info CBS Startup processing thread terminated normally
2021-12-31 14:49:47, Info CBS TI: Startup Processing completes, release startup processing lock.
_
Plus tard dans les versions suivant la V2 de PowerShell, la V3 prend en charge le mot-clé -Tail
. Par conséquent, vous pouvez prévisualiser uniquement les dernières lignes requises plutôt que d’obtenir l’intégralité du fichier.
Get-Content .\DummyLogFile.txt -Tail 4
La sortie donnée correspond aux quatre dernières lignes du texte donné. 4 est une valeur variable de n, suivant la commande tail pour inclure le nombre de lignes de queue ci-dessous.
C:\Users> Get-Content .\DummyLogFile.txt -Tail 4
2022-01-06 08:58:10, Info CBS Ending the TrustedInstaller main loop.
2022-01-06 08:58:10, Info CBS Starting TrustedInstaller finalization.
2022-01-06 08:58:10, Info CBS Lock: Lock removed: WinlogonNotifyLock, level: 8, total lock:6
2022-01-06 08:58:10, Info CBS Ending TrustedInstaller finalization.
PS C:\Users>
Lorsque l’utilisateur a besoin de données en temps réel, comme dans un fichier journal, un fichier en constante évolution, il est possible d’ajouter la commande -Wait
. Lorsque de nouvelles dernières lignes sont ajoutées, la sortie est mise à jour pour imprimer toutes les nouvelles lignes.
PS C:\Users> Get-Content .\DummyLogFile.txt -Wait -Tail 4
La sortie attendrait les modifications.
Get-Content .\DummyLogFile.txt -Wait -Tail 4
2022-01-06 08:58:10, Info CBS Ending the TrustedInstaller main loop.
2022-01-06 08:58:10, Info CBS Starting TrustedInstaller finalization.
2022-01-06 08:58:10, Info CBS Lock: Lock removed: WinlogonNotifyLock, level: 8, total lock:6
2022-01-06 08:58:10, Info CBS Ending TrustedInstaller finalization.
Cependant, lorsque vous utilisez -wait
avec une valeur de queue plus grande, vous laissez le système attendre dans un fichier en constante évolution, tel qu’un fichier journal. Il en résulte une grande consommation de mémoire. Par conséquent, il est important de faire attention au type de fichier que vous utilisez ensemble avec les commandes -wait
-tail
.
Windows PowerShell avec Cat
pour réaliser la fonction de commande Unix tail
Il serait pratique pour les utilisateurs qui sont plus familiers avec les systèmes de type Unix d’utiliser la commande cat
.
PS C:\Users> cat .\DummyLogFile.txt
L’utilisation de la commande cat uniquement afficherait ou imprimerait le contenu du fichier texte, similaire à Get-Content
uniquement.
2021-12-31 14:49:47, Info CBS TI: --- Initializing Trusted Installer ---
2021-12-31 14:49:47, Info CBS TI: Last boot time: 2021-12-31 12:41:44.516
2021-12-31 14:49:47, Info CBS Startup processing thread terminated normally
2021-12-31 14:49:47, Info CBS TI: Startup Processing completes, release startup processing lock.
...
Cependant, l’utilisation de cat
avec la commande -Tail n
(n étant le nombre de lignes finales requises dans la sortie) fournirait une sortie similaire à la commande tail sous Unix.
PS C:\Users> cat .\DummyLogFile.txt -Tail 4
La sortie du code serait la suivante.
C:\Users> cat .\DummyLogFile.txt -Tail 4
2022-01-06 08:58:10, Info CBS Ending the TrustedInstaller main loop.
2022-01-06 08:58:10, Info CBS Starting TrustedInstaller finalization.
2022-01-06 08:58:10, Info CBS Lock: Lock removed: WinlogonNotifyLock, level: 8, total lock:6
2022-01-06 08:58:10, Info CBS Ending TrustedInstaller finalization.
PS C:\Users>
Si nécessaire, la commande cat
peut également être utilisée avec la commande Wait
pour suivre les modifications en temps réel des fichiers texte, comme les fichiers journaux d’un système.
PS C:\Users> cat .\DummyLogFile.txt -Tail 4 -Wait
Par conséquent, la sortie serait donnée et le système attendrait toute modification dans le ou les fichiers donnés. Ensuite, ces lignes de queue de fichier modifiées seraient imprimées par le PowerShell en tant que sortie.
Get-Content .\DummyLogFile.txt -Wait -Tail 4
2022-01-06 08:58:10, Info CBS Ending the TrustedInstaller main loop.
2022-01-06 08:58:10, Info CBS Starting TrustedInstaller finalization.
2022-01-06 08:58:10, Info CBS Lock: Lock removed: WinlogonNotifyLock, level: 8, total lock:6
2022-01-06 08:58:10, Info CBS Ending TrustedInstaller finalization.
_
La queue
Linux est le plus souvent utilisée pour suivre différents fichiers journaux dans les systèmes Linux et similaires. Par conséquent, PowerShell, qui permet aux utilisateurs Windows d’exécuter des scripts de ligne de commande pour réaliser certaines fonctions similaires, doit disposer de telles fonctionnalités.
Dans les nouvelles versions de PowerShell, la commande tail
est utilisée avec les commandes Get-Content
ou cat
décrites ci-dessus, et la commande wait
est utilisée pour suivre les modifications en temps réel.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.