プログラミング

Bashコマンドラインの標準出力をヤンクで選択してパイプに渡す

Linux Bashコマンドラインの標準出力をヤンクで選択してパイプに渡す方法について紹介します。

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_62286dd0-e782-411e-b087-2688dab38f2b.gif

標準出力のデータからデータを選択してパイプに渡すことができる、yankを試してみました。

mptre/yank: Yank terminal output to clipboard

ヘルプ

yuis ASUS /mnt/c/pg$ yank-cli  --help
yank-cli: invalid option -- '-'
usage: yank [-lx | -v] [-d delim] [-g pattern [-i]] [-- command [argument ...]]

-d … デリミタ。 e.g. yank -d \", <file.csv
-g … 正規表現 e.g. ps ux | yank -g [0-9]+ | xargs kill
-l … 行を選択 ( これはfzfとかでも代用ができますね )

インストール

sudo apt update ; sudo apt-get install yank

使用例

  • パスをヤンク
echo $PATH | yank-cli -d :

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_e31dce5a-a5ba-493d-ab76-23eff5cfcbd7.gif

  • プロセスPIDをヤンク
yuis ASUS /mnt/c/_tmp/20190604000330$ ps aux | head
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   8324   116 ?        Ss   May16   0:00 /init
root         3  0.0  0.0   8340    80 tty1     Ss   May16   0:00 /init
yuis         4  0.0  0.0  36296   284 tty1     Sl   May16   0:00 /mnt/c/Program Files/ConEmu/ConEmu/w

ps aux | head | yank-cli

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_62286dd0-e782-411e-b087-2688dab38f2b.gif

  • 標準出力に渡す
ps aux | head | yank-cli | tee

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_10f4c85a-b50d-4155-8215-ded5bbc97397.gif

  • WSL bashで使う
ps aux | head | yank-cli -- clip.exe

# or

ps aux | head | yank-cli | clip.exe

If stdout is not a terminal the selected field will be written to stdout and exit without invoking the yank command.

まぁつまりyankコマンドのあとにパイプがあればそれにパイプをして、なければクリップボードにコピーする操作をする、ということですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です