ターミナルはおもにOSの機能を呼び出すシェルのコマンドを組み合わせるプログラミングやシステム管理領域のツールであったが、クラウドやSaaSに加えてAIというツール層も拡大するなかで、ターミナルの活用の幅は広がりそうだ。
テキストを編集・表示させる機能を持つターミナルでは、APIでクラウド側にある機能を呼び出し表示させたり、データをJSON形式で取得してそこから意味のある情報を正規表現で抽出したりといった使い方はもちろん、通常使っているSaaSの情報を効率的にローカルで扱えるように工夫することもできる。
○Word(.docx)ファイルを解凍してみる
たとえば、Wordである。多くのひな型や情報資産を持つWordはローカルにもクラウドにも保存しているケースが多いだろう。Wordの拡張子.docxは通常のままではcat(Get-Content)ではテキストをPowerShellターミナル上では開けない。ZIPアーカイブであるため文字化けして表示される。
これをzip解凍のexpand-Archiveコマンドで開くと
同名フォルダが解凍される。XMLなど複数のファイルの情報でWordが構成されていることがわかる。
○PowerShellスクリプトで手軽に本文を表示させる
解凍後のhinaフォルダの直下wordフォルダにのdocument.xmlをテキストエディタで開くと、本文が書き込まれたエリアがあるので、これを正規表現等でスプレイピングのように抜き出す方法もありそうだが、PowerShellでComオブジェクトを扱ったほうがスクリプトは簡単になる。
ファイルのパスをパラメータで入力、New-Object -ComObject Word.ApplicationでWordの情報をComオブジェクト経由で取得するには以下のようにする。
function wo
function wo {
param([string]$FileName)
$path = Join-Path $PWD $FileName
$word = New-Object -ComObject Word.Application
$doc = $word.Documents.Open($path)
$text = $doc.Content.Text
$text
$doc.Close()
$word.Quit()
}
これをnotepad $PROFILE で開いたプロファイルに記述しPowerShell上で. $PROFILEと入力して反映して関数コマンド化する。Wordオープンコマンドwoを入力してファイル名を渡すと
こうしておけば、PowerShellから移動せずに確認できるようになるのでコマンドを使ってコピーしたり必要な文面を自分のローカルDBにストックして別のSaaSで使ったりと使いまわせる。
![美酵 ビファ クレンズドリング 栄養機能⾷品 30包約30日分 [ 発酵 と マグネシウム の力で 美容と健康をサポートし 満腹感 のある 置き換えダイエット ]](https://m.media-amazon.com/images/I/51FnYyHl-kL._SL500_.jpg)
![明治薬品 シボラナイト2 150粒(30日分) [シリアルナンバー付] [ ダイエットサプリ ブラックジンジャー ポリメトキシフラボン 腹部の脂肪を減らす ]](https://m.media-amazon.com/images/I/41U8wqxGJVL._SL500_.jpg)



![hiritu(ヒリツ) バランスリペアシャンプー&ヘアトリートメント オーロラ [シリーズ最高峰のツヤ] きらめき髪 ツヤ髪 浮き毛パヤ毛抑制 ダメージ毛を集中補修 PPT系洗浄成分 アミノ酸系洗浄成分 毛髪補修成分 カシス&パチュリの香り 香水シャンプー](https://m.media-amazon.com/images/I/41FoHN-YVXL._SL500_.jpg)





