2016-11-04 7 views
0

テキストファイルでパターンを検索するためのpowershellスクリプトを作成しようとしています。具体的には、ファイルを1行ずつ読み込み、32文字目の位置にスペースがある行を返すことを検討しています。powershellを使用してパターンを検索する

私はこれまでこれを持っていましたが、空白を持つすべての行を返します。私はそれを32番目の位置に絞り込む必要があります

Get-Content -path C:\ VM_names.txt | Where-Object {$ _ -match "\ s +"}

答えて

1

使用このパターン:

-match '^.{31} ' 

説明:

^ - beginning of the string 
. - any character 
{31} - repeated 31 times 
    - a space 
+0

恐ろしいです。それは魅力のように機能します。助けてくれてありがとう! –

1

これは実際には本当に簡単です。デフォルトでGet-Contentは、-Rawパラメータを使用しない限り、文字列の配列(個々の行)としてテキストファイルを読み取ります。 -match PowerShell演算子を使用して、正規表現に一致する行に「一致」させることができます。

(Get-Content -Path c:\VM_names.txt) -match '^.{31}\s' 

上記のコマンドの結果は、目的の正規表現に一致する行の配列になります。

Get-Contentへの呼び出しは、そうでない場合はPowerShellのパーサは-matchは、そのコマンドのパラメータであると思いますが、括弧でラップする必要があります。

NOTE2:二重引用符が必要なことが特に分かっていない限り、文字列を一重引用符で囲むことをお勧めします。あなたは偶然の補間から救うでしょう。

関連する問題