Windows PowerShell コマンドで Unix Tail コマンドを実現する
-
Win32 の
tail
はtail
Unix コマンド関数を実現する -
テール
Unix コマンド機能を実現するGet-Content
を備えた Windows PowerShell -
テール
Unix コマンド機能を実現するCat
を備えた Windows PowerShell
Unix オペレーティングシステムには、OS コマンド tail
が含まれています。tail
プログラムの目的は、テキストファイル/パイプデータの末尾を表示することです。
期待される出力は、ファイルの最後の行です。行数は変えることができます。同じコマンドを一度に複数のファイルで使用して、標準出力を出力できます。
Unix に加えて、tail
コマンドは Unix ライクなシステムと FreeDOS および MSX-DOS システムをサポートします。
クロスプラットフォームアプリケーションの Windows バージョンである Windows PowerShell では、コマンドラインシェルコマンドを実行して、さまざまな機能の自動化を実現できます。ただし、ここで使用されるコマンドは、Unix ライクなシステムで使用される標準のスクリプトコマンドとは異なります。
Windows PowerShell でテール
と同様の機能を実行するには、いくつかの許容可能な方法があります。
Win32 の tail
は tail
Unix コマンド関数を実現する
この機能を実現する一般的な方法の 1つは、Windows PowerShell 用の tail-f
プログラムを使用することです。Win32 のテール。ファイルの変更を追跡し、ユーザーがリアルタイムで変更を追跡できるようにします。ただし、ユーザーは、https://tailforwin32.sourceforge.net のリンクから入手できる別のプログラムを完全に使用する必要があります。したがって、Windows システムの PowerShell 固有の代替手段を探しているユーザーには適したソリューションではありません。
ただし、これにも受け入れ可能な PowerShell ベースのソリューションがいくつかあります。
テール
Unix コマンド機能を実現する Get-Content
を備えた Windows PowerShell
最も効果的な方法の 1つは、Get-Content
を使用することです。その後に -Tail n
が続きます。n は出力として取得する必要のある行数です。
以前のバージョンの WindowsPower Shell、V1 および V2 では、この機能は、Get-Content
コマンドの後に -Wait
コマンドを実行することで実現されていました。ファイルがリアルタイムで変更されている場合は、待機
コマンドを使用して、変更を追跡できるようにします。
Get-Content .\DummyLogFile.txt
ここで、出力は以下に示すようにファイル全体のコンテンツを取得します。ログファイルの最初の行から始まり、最後まで続きます。
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.
.
.
ただし、- Wait
を使用すると、ファイルテールへのリアルタイムの変更を追跡できます。
Get-Content .\DummyLogFile.txt -Wait
ここでは、出力にすべてのファイルデータが含まれ、以下の変更を待ちます。
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.
_
PowerShell の V2 に続くバージョンの後半では、V3 は -Tail
キーワードをサポートします。したがって、ファイル全体を取得するのではなく、必要な最後の行のみをプレビューできます。
Get-Content .\DummyLogFile.txt -Tail 4
指定された出力は、指定されたテキストの最後の 4 行です。4 は n の可変値であり、tail コマンドに続いて、以下のテールラインの数を含めます。
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>
ログファイルや絶えず変化するファイルのように、ユーザーがリアルタイムデータを必要とする場合は、-Wait
コマンドを追加できます。新しい最後の行が追加されると、出力が更新されて新しい行が出力されます。
PS C:\Users> Get-Content .\DummyLogFile.txt -Wait -Tail 4
出力は変更を待ちます。
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.
ただし、テール値が大きい -wait
を使用すると、ログファイルなどの絶えず変化するファイルでシステムを待機させることができます。その結果、大量のメモリが消費されます。したがって、-wait
-tail
コマンドを一緒に使用するファイルの種類に注意することが重要です。
テール
Unix コマンド機能を実現する Cat
を備えた Windows PowerShell
Unix ライクなシステムに精通しているユーザーにとっては、cat
コマンドを使用すると便利です。
PS C:\Users> cat .\DummyLogFile.txt
cat コマンドのみを使用すると、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.
...
ただし、-Tail n
コマンド(n は出力に必要な最終行数)で cat
を使用すると、Unix の tail コマンドと同様の出力が提供されます。
PS C:\Users> cat .\DummyLogFile.txt -Tail 4
コードの出力は次のようになります。
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>
必要に応じて、cat
コマンドを Wait
コマンドと一緒に使用して、システム内のログファイルなどのテキストファイルへのリアルタイムの変更を追跡することもできます。
PS C:\Users> cat .\DummyLogFile.txt -Tail 4 -Wait
したがって、出力が提供され、システムは指定されたファイルの変更を待機します。次に、これらの変更されたファイルの末尾の行が、PowerShell によって出力として出力されます。
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.
_
Linux tail
は、Linux および Linux のようなシステムでさまざまなログファイルを追跡するために最もよく使用されます。したがって、Windows ユーザーがコマンドラインスクリプトを実行して特定の同様の機能を実行できるようにする PowerShell には、このような機能が必要です。
新しい PowerShell バージョンでは、tail
コマンドが上記の Get-Content
または cat
コマンドと一緒に使用され、wait
コマンドがリアルタイムの変更を追跡するために使用されます。
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.