2015年3月28日のブックマーク (3件)

  • Powershell - Delete all items except those in specific subdirectories

  • Select-String その他。

    Select-Stringコマンドレッドは、 -Pattern にそって文字列やファイルからテキストを抜き出すことができる。 正規表現も利用できるので、今回は "=[02468]" つまり、イコールのあとに偶数・奇数がくるものをパターンとしてオブジェクトを作り出した。 とりあえず、小難しいことは置いといて、Select-Stringはgrepやfindstrの代わりになり、 正規表現も使用可能だということを覚えとく。 PowerShellを扱う場合、その出力されたオブジェクトはなにかを把握しておくことも重要。 オブジェクトがなんなのかを調べるには、Get-Member(エイリアスはgm)を使うといい。 PS .\sample> Select-String -Pattern "=[02468]" .\userlist.txt | gm TypeName: Microsoft.PowerShe

    Select-String その他。
    kshimizu1226
    kshimizu1226 2015/03/28
    “Foreach-Object コマンドはエイリアスで Foreach または % として割り当てられている。 ちなみに、パイプで渡された各オブジェクトは $_ としてわたされる。 同じくプロパティを見てみる。”
  • PowerShell 正規表現を使ってコマンド一本で文字列抽出 - YOMON8.NET

    テキストファイルから正規表現使って文字列抽出したい場合、 PowerShellからこんなコマンドで一発で抽出できます。 [regex]::Matches((Get-Content 対象のファイル),"正規表現文字列","任意オプション") | foreach{$_.Value} 例えばXMLからCDATAの値を抽出してみます。 [regex]::Matches((Get-Content .\test.xml),"CDATA\[.*?\]") | foreach{$_.Value} 結果はこのようなイメージになります。 CDATA[XXX] CDATA[XXXXXX] CDATA[SSS] CDATA[YYYYYY] もし、PowerShellだけで書くならこんな方法もあります。 PS>(get-content .\test.xml).foreach{if($_ -match "CDATA\

    PowerShell 正規表現を使ってコマンド一本で文字列抽出 - YOMON8.NET
    kshimizu1226
    kshimizu1226 2015/03/28
    “"CDATA\[.*?\]") | foreach{$_.Value}”