如何配置 fzf 以仅返回所选行的特定字段?

lar*_*sks 7 shell

我最近遇到了fzf,它似乎是一个很棒的小工具,但有一件事我遇到了麻烦:给定每行多个字段的输入,如何将其配置为在按下 时仅返回特定字段enter?该accept操作是键的默认绑定enter,不接受任何参数...您不能使用--bind enter:accept(1)或类似的东西。

和选项影响搜索 ( ) 或显示 ( ) 的字段,但不影响返回的内容--nth--with-nth--nth--with-nth

例如,如果我运行如下命令:

ps -fe | fzf --some-options...
Run Code Online (Sandbox Code Playgroud)

我想按下enter一条看起来像这样的线:

  root        2067       1  0 08:41 ?        00:00:00 /usr/sbin/gdm
Run Code Online (Sandbox Code Playgroud)

仅在标准输出上发出2067

fzf是使用其他工具(例如)对输出进行后处理的唯一选择吗awk

小智 9

ps -fe | fzf --bind 'enter:execute(echo {2})+abort'
Run Code Online (Sandbox Code Playgroud)

这给了你第二个字段

或用于多项选择:

ps -fe | fzf -m --bind 'enter:execute(echo {+2})+abort'
Run Code Online (Sandbox Code Playgroud)