はじめに
macOSのpbcopy, pbpasteと同じようなことをWSLでも行いたかったので、調べてみました。
結論
クリップボードにコピー(pbcopy)
clip.exeを使います。
$ echo 'hogehoge' | clip.exe
# クリップボードに `hogehoge\n`が格納されている
クリップボードからペースト(pbpaste)
powershell.exe -command 'Get-Clipboard'を使います。
$ powershell.exe -command 'Get-Clipboard'
hogehoge
# 末尾で改行される
pbcopy, pbpasteと同じような形で使用した場合は、aliasに指定します。
alias pbcopy="clip.exe"
alias pbpaste="powershell.exe -command 'Get-Clipboard'"
補足
改行コードを取り除く
どうやら、clip.exeを使用すると、末尾に\nが入るようです。
クリップボードにコピーする際に改行コードを取り除くのは難しそうなので、
ペーストする際に取り除くようにします。
$ powershell.exe -command 'Get-Clipboard' | perl -pe 'chomp if eof'
hogehoge
# 末尾の改行が取り除かれる