ls
示す:
entry1
entry2
entry3
次のシェルコマンドで上記の出力(すべてのエントリではなくnなどの特定の行のエントリ)を再利用するにはどうすればよいですか?
それは次のとおりです。
vi $(!!)@3
以下を意味する必要があります。
vi entry3
ベストアンサー1
出力を直接再利用することはできません。ビデオメモリにピクセルバンドルとして保存したり、端末エミュレータのメモリに保存したりすることもできますが、そこから再インポートする便利な方法はありません。できることは、コマンドを再実行して今回は出力をキャプチャすることです。それがまさにそのことです!!
。
zsh では、次を使用します。パラメータ拡張フラグ入れ子になった置換で選択した行を抽出します。あるいは、外部ユーティリティを使用して分割して簡単に入力できます。
vi "${${(f)$(!!)}[3]}"
vi "$(!! | awk NR==3)"
これはzshでも実際に二重引用符が必要な数少ない場合の1つです。それ以外の場合、コマンドの出力はスペースで区切られたコンポーネントに分割されます。スペースで区切られたコンポーネントが問題ない場合は、より短いコマンドを使用できます。
vi ${$(!!)[3]}