2016-09-28 2 views
-4
 
Linux 4.4.0-38-generic (ajaylinux) 09/27/2016 _x86_64_ (2 CPU) 

07:22:03 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 
07:22:03 PM all 0.16 0.04 0.09 0.16 0.00 0.01 0.00 0.00 0.00 99.55 

これは私のテキストファイルであり、誰でも助けてくれます。 PowerShellの%idle 99.55のような上記のヘッダを使って値を取る必要があります。助けを求める人regexを使ってpowershellのテキストファイルから特定の値を取得する方法は?

+0

ようこそスタックオーバーフロー!私たちは、プログラマーやプログラミング愛好家を支援するコミュニティです。それは、あなたが投稿した前にあなたがしたことや試したことを示すことが期待されています。これは私たちに何かを築くものです。現時点では、これはSOのトピックではないコードの書き込み要求のように読まれます。あなたの質問をその部分に分け、それらの問題の解決策を個別に検索してください。それでも問題が解決しない場合は、あなたの質問があなたの仕事を示すように[編集]して、あなたとコミュニティをより良く助けることができます。 – Matt

答えて

1

regexは使用しないでください。ファイルに構造化データが含まれているように見えます。 as CSVを読んで、フィールド区切り文字としてtab charを指定します。 CSVデータから目的の列の内容を選択するのは簡単です。 ,に二つ以上のスペースを置き換えることによって、CSV互換のログにする

0

使用正規表現:

$data = (Get-Content 'file.txt') -replace '\s{2,}', ',' | Select -skip 2 | ConvertFrom-Csv 

%は有効な識別子の文字ではありませんので、引用符のプロパティ囲み:$data.'%usr'
を以前に文字を取り除きます変換:

$data = (Get-Content 'file.txt') -replace '\s{2,}', ',' -replace '%', '' |Select -skip 2 | 
     ConvertFrom-Csv 
$data.usr 
+0

あなたの助けていただきありがとうございますが、動作していません。このシナリオは、sshコマンドを呼び出すことによって、Linuxマシンからcpu情報を取り出してファイルに出力します。そのファイルから、私はアイドル、usrなどのような特定のカラムだけを使用したいと思っています – ajaykannan

+0

特定の値を取得する方法...任意のヘルプpls – ajaykannan

+0

私はあなたのコードで何が起こるか知ることができません。 PowerShell ISEを使用してコードを検査およびデバッグします。 – wOxxOm

関連する問題