Comandi di Windows PowerShell per raggiungere il comando Unix Tail
-
tail
in Win 32 per ottenere la funzione del comandotail
di Unix -
Windows PowerShell con
Get-Content
per ottenere la funzione del comandotail
di Unix -
Windows PowerShell con
Cat
per ottenere la funzione del comandotail
di Unix

Il sistema operativo Unix contiene il comando OS tail
. Lo scopo del programma tail
è visualizzare la parte finale di un file di testo/dati pipe.
L’output atteso è le ultime righe di un file. Il numero di righe può variare. Lo stesso comando può essere utilizzato con più di un file contemporaneamente per stampare l’output standard.
Oltre a Unix, il comando tail
supporta i sistemi simili a Unix e i sistemi FreeDOS e MSX-DOS.
In Windows PowerShell, la versione Windows di un’applicazione multipiattaforma, è possibile eseguire comandi della shell a riga di comando per ottenere automazione in diverse funzionalità. Tuttavia, i comandi utilizzati qui variano dai comandi di scripting standard utilizzati nei sistemi simili a Unix.
Ci sono diversi modi accettabili per fare una funzione simile a tail
in Windows PowerShell.
tail
in Win 32 per ottenere la funzione del comando tail
di Unix
Uno dei modi più comuni per ottenere questa funzionalità è utilizzare il programma tail-f
per Windows PowerShell; Tail per Win32. Tieni traccia di qualsiasi cambiamento del file e consente all’utente di monitorare le modifiche in tempo reale. Tuttavia, richiede agli utenti di utilizzare un altro programma interamente, disponibile tramite il link: http://tailforwin32.sourceforge.net. Pertanto, non è una soluzione adatta per un utente che cerca un’alternativa specifica di PowerShell per il sistema Windows.
Tuttavia, ci sono anche alcune soluzioni accettabili basate su PowerShell per questo.
Windows PowerShell con Get-Content
per ottenere la funzione del comando tail
di Unix
Uno dei più efficaci è utilizzare Get-Content
. Deve essere seguito da -Tail n
, n essendo il numero di righe che è necessario ottenere come output.
Nelle versioni precedenti di Windows PowerShell, V1 e V2, questa funzionalità è stata ottenuta tramite il comando Get-Content
seguito dal comando -Wait
. Se il file sta cambiando in tempo reale, il comando Wait
viene utilizzato in modo che eventuali modifiche possano essere monitorate.
Get-Content .\DummyLogFile.txt
Qui l’output ottiene il contenuto dell’intero file come mostrato di seguito. Inizia dalle prime righe del file di log e continua fino alla fine.
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.
.
.
Tuttavia, le modifiche in tempo reale della coda del file possono essere monitorate quando utilizzato con - Wait
.
Get-Content .\DummyLogFile.txt -Wait
Qui, l’output avrebbe tutti i dati del file e attendere le modifiche di seguito.
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.
_
Successivamente, nelle versioni successive alla V2 di PowerShell, la V3 supporta la parola chiave -Tail
. Pertanto, puoi visualizzare solo le ultime righe richieste anziché ottenere l’intero file.
Get-Content .\DummyLogFile.txt -Tail 4
L’output fornito sono le ultime quattro righe del testo fornito. 4 è un valore variabile di n, che segue il comando tail per includere il numero di righe di coda di seguito.
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>
Quando l’utente richiede dati in tempo reale, come in un file di log, un file in costante cambiamento, è possibile aggiungere il comando -Wait
. Quando vengono aggiunte nuove ultime righe, l’output viene aggiornato per stampare eventuali nuove righe.
PS C:\Users> Get-Content .\DummyLogFile.txt -Wait -Tail 4
L’output aspetterebbe cambiamenti.
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.
Tuttavia, quando utilizzi -wait
con un valore di coda più grande, consenti al sistema di attendere in un file in costante cambiamento come un file di log. Ciò comporta un grande consumo di memoria. Pertanto, è importante prestare attenzione al tipo di file con cui si utilizzano i comandi -wait
e -tail
insieme.
Windows PowerShell con Cat
per ottenere la funzione del comando tail
di Unix
Sarebbe conveniente per gli utenti che sono più familiari con i sistemi simili a Unix utilizzare il comando cat
.
PS C:\Users> cat .\DummyLogFile.txt
Utilizzando solo il comando cat si otterrebbe o stamperebbe il contenuto del file di testo, simile solo a Get-Content
.
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.
...
Tuttavia, utilizzare cat
con il comando -Tail n
(n essendo il numero di ultime righe richieste nell’output) fornirebbe un output simile al comando tail in Unix.
PS C:\Users> cat .\DummyLogFile.txt -Tail 4
L’output del codice sarebbe il seguente.
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>
Quando necessario, il comando cat
può essere utilizzato anche con il comando Wait
per monitorare le modifiche in tempo reale ai file di testo, come i file di log in un sistema.
PS C:\Users> cat .\DummyLogFile.txt -Tail 4 -Wait
Pertanto, l’output sarebbe fornito e il sistema aspetta eventuali modifiche nel file/file forniti. Quindi quelle righe di coda di file cambiate verrebbero stampate da PowerShell come output.
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.
_
Il tail
di Linux è più spesso utilizzato per monitorare diversi file di log in Linux e nei sistemi simili a Linux. Pertanto, PowerShell, che consente agli utenti Windows di eseguire script da riga di comando per ottenere determinate funzioni simili, deve avere tale funzionalità.
Nelle versioni più recenti di PowerShell, il comando tail
viene utilizzato insieme ai comandi Get-Content
o cat
descritti sopra e il comando wait
è utilizzato per monitorare eventuali modifiche in tempo reale.
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.