編集してコマンドで実行したい文字列を出力するスクリプトがあります。
たとえば、私は
cat ... | xsel -p
その後、「xsel -op」の出力を編集し、編集した文字列を新しいコマンドで実行しようとします。
だから私は努力しています:
cat ... | xsel -p
$(xsel -op) TAB
しかし、当然失敗しました。
xsel -op
もしそうなら(この場合)、内容をコマンドラインに出力し、新しいコマンドを編集してからそのコマンドを実行するにはどうすればよいですか?
ありがとう
答え1
答え2
次のようにして履歴に追加できます(少なくともbashでは、zshではわかりません)。
history -s $(xsel -op)
その後、検索して編集します。
それ以来、私は発見した。
print -s $(xsel -op)
zshでも有効です。
答え3
レコードに手動で追加する必要なく、bashshell-expand-line
キー(M-C-e)を押すだけです。
shell-expand-line (M-C-e)
Expand the line as the shell does. This performs alias and his‐
tory expansion as well as all of the shell word expansions. See
HISTORY EXPANSION below for a description of history expansion.
答え4
私はあなたが何をしたいのか完全にはわかりませんが、次のように動作するはずです。
`xsel -op | sed 'do something'`
バックティックを使用すると、BASHが実行されます。この場合、sedで編集したXのデフォルト選択バッファに保存されているすべてのエントリが実行されます。たとえば、
echo "find . -name foo" | xsel -p
`xsel -op | sed 's/foo/bar/`
上記のコマンドをfind
実行すると、「bar」というファイルまたはフォルダの検索が実行されます。