Linux Bashコマンドラインの標準出力をヤンクで選択してパイプに渡す方法について紹介します。
標準出力のデータからデータを選択してパイプに渡すことができる、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 :
- プロセス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
- 標準出力に渡す
ps aux | head | yank-cli | tee
- 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コマンドのあとにパイプがあればそれにパイプをして、なければクリップボードにコピーする操作をする、ということですね。