➜ ~ cat .zshrc | grep xclip
alias c="xclip -selection c"
alias -g v='"$(xclip -selection c -o)"'
➜ ~ v
zsh: 没有那个文件或目录: file:///home/roach/Downloads/pure.png
➜ ~
「該当するファイルもディレクトリもありません」とは、中国語で「ファイルもディレクトリもありません」という意味です。
にあるファイルをコピーしたいです/home/roach/Downloads/pure.png
。 Dolphin KDEで選択してコピーするとき(右クリックしてからコピーをクリック)、上記の代わりに/home/roach/Downloads/pure.png
それを取得する方法はありますか?file:///home/roach/Downloads/pure.png
sed
追加の文字を削除するfile://
などのコマンドを使用していると思いましたが、正しい方法を取得できませんでした。
➜ ~ alias -g v='"$(xclip -selection c -o)|sed -e 's/file:\/\///'"'
➜ ~ v
zsh: 没有那个文件或目录: file:///home/roach/Downloads/pure.png|sed -e s/file:////
➜ ~
それでは、私のものをどのように修正しますかalias -g v
?
ベストアンサー1
シェル自体がこれらの交換を実行できるため、外部プログラムのより高価なフォークや実行を回避できます。詳しくは、「パラメータの拡張」を参照してくださいzshexpn(1)
。
% x=file:///etc/passswd; print ${x#file://}
/etc/passswd
だからあなたの場合は、おそらく次のようになります。
% alias -g v='${$(xclip -selection c -o)#file://}'
% print -l v
/etc/passswd
これはv
やや一般的な文字なので、グローバルエイリアスとしては適していない可能性があります。
名前にスペースが含まれる項目の処理方法を決定することもできます。print -l
次の項目の違いが明らかになります。
alias -g v='${$(xclip -selection c -o)#file://}'
alias -g v='${"$(xclip -selection c -o)"#file://}'
クリップボードの内容にスペースがある場合。