アニメ『クリオネの灯り』
クラスのいじめられっこと仲良くなって助ける話、ですかね。一話が短いので忙しい仕事の合間に見られます。その点は良いところです。内容はまっすぐなんでしょうけど、今のところ感動できない自分がいます。ん~何でしょうか、大人向けじゃないんだろうなあ。まあ最終回まで見て感動したら、この感想文も書き換わっていることと思います。
最近はPowerShellを学習したい気持ちばかりなので、見てるアニメの内容と連動していないですが、今回も御多分に漏れず、です。
Where-Objectを使ってみます。省略形は、?です。
(本記事はPowerShell入門記事としてコチラにもまとめています。)
ForEach-Objectを使ってWhere-Objectを表現すると、
PS C:\Users\takk\aaa> 1..10 | %{if($_ % 2){$_}} 1 3 5 7 9 PS C:\Users\takk\aaa>
となります。
Where-Objectを使うと少しだけ短いコマンドラインとなります。
PS C:\Users\takk\aaa> 1..10 | ?{$_ % 2} 1 3 5 7 9 PS C:\Users\takk\aaa>
ファイル一覧に対して、Where-Objectを使ってみましょう。
実験ファイルを適当に作成します。
PS C:\Users\takk\aaa> 1..10 | %{$fname="file$_.txt";"HELLO" > $fname}
このようにファイルが10個できました。
PS C:\Users\takk\aaa> gci ディレクトリ: C:\Users\takk\aaa Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2017/07/30 23:27 16 file1.txt -a--- 2017/07/30 23:27 16 file10.txt -a--- 2017/07/30 23:27 16 file2.txt -a--- 2017/07/30 23:27 16 file3.txt -a--- 2017/07/30 23:27 16 file4.txt -a--- 2017/07/30 23:27 16 file5.txt -a--- 2017/07/30 23:27 16 file6.txt -a--- 2017/07/30 23:27 16 file7.txt -a--- 2017/07/30 23:27 16 file8.txt -a--- 2017/07/30 23:27 16 file9.txt
-likeを使って、10という文字列が含まれている行のみ抽出します。
PS C:\Users\takk\aaa> gci | ?{$_ -like "*10*"} ディレクトリ: C:\Users\takk\aaa Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2017/07/30 23:27 16 file10.txt PS C:\Users\takk\aaa>
正規表現を使っての抽出には、-matchを使います。
PS C:\Users\takk\aaa> gci | ?{$_ -match "[135]"} ディレクトリ: C:\Users\takk\aaa Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2017/07/30 23:27 16 file1.txt -a--- 2017/07/30 23:27 16 file10.txt -a--- 2017/07/30 23:27 16 file3.txt -a--- 2017/07/30 23:27 16 file5.txt PS C:\Users\takk\aaa>
コメント