コード

vagrant global-status | Select-String -Pattern "running" | % { vagrant halt $_.Line.Split(" ")[0] }

解説

vagrant global-status ★vagrantで起動したVM一覧を取得
| Select-String -Pattern "running"  ★status=running を抽出
| % { vagrant halt $_.Line.Split(" ")[0] } ★vagrant halt VMのID(1フィールド目) を実行

ポイント

  • grep -> Select-String
  • cut -> Split
    • Select-String オブジェクト の Line プロパティに対して Split を適用
  • for/while -> % (For-Eachオブジェクト)
    • xargs みたいに引数をいっぱい並べてくれそうなものは見つけられなかった・・・

シェルスクリプトだとこんな感じ?

vagrant global-status \
| grep 'running' \
| cut -d' ' -f1 \
| while read i; do vagrant halt $i; done

こっちのほうがいいかも

vagrant global-status \
| awk '$4~/running/&&$0=$1'
| xargs vagrant halt

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-07 (水) 16:19:15