Dolphin KDEで選択したファイルパスを取得し、zshにコピーして貼り付ける方法は?

Dolphin KDEで選択したファイルパスを取得し、zshにコピーして貼り付ける方法は?
➜  ~ 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://}'

クリップボードの内容にスペースがある場合。

おすすめ記事