第5章 文字列と非構造化テキスト
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
5.0 はじめに
を作成し、テキストを操作することは、長い間、スクリプト言語や従来のシェルの主要なタスクのひとつだった。実際、Perl(言語)はテキスト処理のために設計されたシンプルな(しかし便利な)ツールとして始まった。しかしその人気は、Perlがその必要性を満たしていることの強力な証拠となっている。
テキストベースのシェルでは、この強いフォーカスが続く。システムとのインタラクションのほとんどが、プログラムのテキストベースの出 力を操作することで行われる場合、強力なテキスト処理ユーティリティが重要になる。awk 、sed 、grep などのテキスト解析ツールは、テキストベースのシステム管理の要となる。
PowerShellのオブジェクトベース環境では、この伝統的なツールチェーンはそれほど重要な役割を果たさない。以前はこれらのツールが必要だったタスクのほとんどを、他のPowerShellコマンドを使ってはるかに効率的に達成できる。ただし、オブジェクトベースのシェルになったからといって、PowerShellがテキスト処理のサポートをすべてやめたわけではない。文字列や構造化されていないテキストを扱うことは、システム管理者にとって重要な役割を果たし続ける。PowerShellでは、(コマンドレットとオブジェクトを使用して)システムの大部分を完全に忠実に管理できるため、テキスト処理ツールは再び実際のテキスト処理タスクに集中することができる。
5.1 文字列を作成する
問題
テキストを保持する変数を作成したい。
解決策
PowerShellの文字列変数を、テキストを保存して扱う方法として使う。
変数展開やエスケープ文字に対応した文字列を定義するには、二重引用符で囲む:
$myString="Hello World"
リテラル文字列(変数展開やエスケープ文字を解釈しない文字列)を定義するには、シングルクォートで囲む:
$myString='Hello World'
ディスカッション
文字列 リテラルには、リテラル文字列(非拡張文字列)と拡張文字列の2種類がある。リテラル文字列を作成するには、文字列をシングルクォート ($myString = 'Hello World') で囲む。展開文字列を作成するには、文字列を二重引用符 ($myString = "Hello World") で囲む。
リテラル文字列では、一重引用符で囲まれたすべてのテキストが文字列の一部になる。展開文字列では、PowerShellは変数名($replacementString など)とエスケープシーケンス(`n など)をその値(それぞれ$replacementString の内容や改行文字など)で展開する。
PowerShell文字列内のエスケープシーケンスと置換規則の詳細については、「文字列」を参照のこと。
リテラル文字列内のテキストはすべてリテラルである」という規則に対する例外として、引用符文字そのものがある。どちらのタイプの文字列でも、PowerShellではその文字列の引用文字を2つ一緒に配置することで、引用文字そのものを追加することができる:
$myString="This string includes ""double quotes"" because it combined ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access