(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Windows】Powershellでheadコマンド相当の処理を行う

スポンサーリンク

やりたいこと

例えばUNIX環境では以下のようにheadコマンドで先頭行のみを抜き出せますが

$ docker ps -q
4aee89111efc
6f222648dbfa
5f0b36608a8e
$ docker ps -q | head -n 1
4aee89111efc

Windows(Powershell)では利用できません。

 head
head : 用語 'head' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません
。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してくださ
い。

実現方法

コマンド全体を( )で囲い、後ろを[ ]で囲います。

> docker ps -q
4aee89111efc
6f222648dbfa
5f0b36608a8e
> (docker ps -q)[0..0]
4aee89111efc

以下、補足です。

補足

特徴的な表現ですが、慣れると結構便利です。
後ろに入れる数字は0が先頭を指し、数字を変更することで複数行を取ることも可能です。

> (docker ps -q)[1..1]
6f222648dbfa
> (docker ps -q)[0..1]
4aee89111efc
6f222648dbfa

この数字部分はマイナスにすることで下からさかのぼることも可能なのでtail相当の処理も行えます。

> docker ps -q
4aee89111efc
6f222648dbfa
5f0b36608a8e
> (docker ps -q)[-1..-1]
5f0b36608a8e
$(docker ps -q)[-1..-2]
5f0b36608a8e
6f222648dbfa

以上、ご参考になれば幸いです。