PowerShell 7.0.0 Preview5新機能 - 見やすくなったSelect-String

【連載】

PowerShell Core入門 - 基本コマンドの使い方

【第76回】PowerShell 7.0.0 Preview5新機能 - 見やすくなったSelect-String

[2019/11/29 08:00]後藤大地 ブックマーク ブックマーク

  • サーバ/ストレージ

サーバ/ストレージ

Select-Stringコマンドレット

PowerShell 7.0.0-preview5ではSelect-Stringコマンドレットにもちょっとした工夫が取り込まれている。Select-Stringコマンドレットは、UNIX系のコマンドで言えばgrepコマンドに相当する機能で、指定したキーワードを含む行だけを抽出する処理を可能にしてくれる。頻繁にテキストデータを処理するのであれば、Select-Stringコマンドレットを利用する機会も多いだろう。このコマンドレットの使い勝手が良くなることは、作業効率や利便性が向上することを意味している。

以下に、Select-Stringコマンドレットの基本的な使用サンプルを示す。なお、この処理はPowerShell 7.0.0-preview4で実行したものだ。

PowerShell 7.0.0-preview4でSelect-Stringコマンドレットを実行したサンプル

指定したキーワードを含む行が抽出されていることがわかる。これをPowerShell 7.0.0-preview5で実行すると、次のような結果が得られる。

PowerShell 7.0.0-preview5でSelect-Stringコマンドレットを実行したサンプル

指定したキーワードを含む行が抽出されているのは同じだが、指定したキーワードが反転色で表示されるようになったことを確認できる。見たとおり、このほうが指定したキーワードがどこに含まれているかがよくわかる。ほかのキーワードを指定してSelect-Stringコマンドレットを実行したサンプルを次に示す。

PowerShell 7.0.0-preview5でSelect-Stringコマンドレットを実行したサンプル その2

PowerShell 7.0.0-preview5では、Select-Stringコマンドレットのデフォルトの挙動が変更されたことになる。このためか、逆にキーワードの反転表示を抑制するために「-NoEmphasis」というパラメータが導入された。このパラメータを指定すると次のようにPowerShell 7.0.0-preview4までのSelect-Stringと同じように、特にキーワードを強調表示するようなことはしなくなる。

PowerShell 7.0.0-preview5のSelect-Stringコマンドレットに-NoEmphasisパラーメタを指定した場合の挙動

同じような処理をgrepコマンドで実行すると次のようになる。結果だけを見ると、Select-Stringコマンドレットとよく似ていることがわかる。

grepコマンドの実行例

UNIX系のコマンドでは、デフォルトの挙動が変わるというのはあまりないように思う(もちろん例外もある)。これまでと異なる挙動をするときには、基本的には新しく追加されるオプションを指定することで変えるというのが伝統的なアプローチだ。grepコマンドの場合、「—color」というオプションが用意されており、このオプションを指定するとPowerShell 7.0.0-preview5のSelect-Stringコマンドレットのように、指定したキーワードに色を着けて表示するようになる。

grepコマンドで指定したキーワードに色を付ける場合のサンプル

LinuxやmacOSではPowerShell 7と同時にUNIX系のコマンドも使うことができるので、PowerShell 7のコマンドレットとUNIXコマンドを組み合わせて使うこともできる。現在ではWindows 10にWSLが導入されていることから、次のようにWindows 10でも同じようにgrepコマンドを組み合わせて使うこともできる。

PowerShell 7からgrepコマンドを使う場合のサンプル

Select-Stringコマンドレットとgrepコマンドは、そもそもコマンドレットとUNIXコマンドという大きな違いがあるが、処理速度という面でも大きな違いがある。grepコマンドの実装はとにかく高速だ。大量のテキストから該当するデータだけを摘出する処理をするなら、Select-Stringコマンドレットよりもgrepコマンドのほうが処理がすぐに完了する。普段はSelect-Stringコマンドレットを使っていればよいと思うが、大量のデータを処理する場合にはgrepコマンドを組み合わせるというのも悪くない方法だ。

前回取り上げたFormat-Hexコマンドレットも今回取り上げたSelect-Stringコマンドレットも変更点としては小さいものだが、ユーザーの利便性が向上する、注目しておきたい変更点だと言える。

参考資料

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】RPA入門 - ツールで学ぶ活用シーン

【連載】RPA入門 - ツールで学ぶ活用シーン

AIには、ルールベース、機械学習、深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現しますが、AIのスピンオフという位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPAが注目されています。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします

会員登録(無料)

注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る