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

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

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

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

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

ps -fe | fzf --some-options...

我想按下enter如下所示的一行:

  root        2067       1  0 08:41 ?        00:00:00 /usr/sbin/gdm

仅在标准输出上发出2067

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

答案1

答案是测试流给了我一个很好的提示,并且我找到了解决方案become()

ps -fe | fzf --bind 'enter:become(echo {2})'
ps -fe | fzf -m --bind 'enter:become(echo {+2})'

答案2

ps -fe | fzf --bind 'enter:execute(echo {2})+abort'

这给了你第二个字段

或进行多选:

ps -fe | fzf -m --bind 'enter:execute(echo {+2})+abort'

相关内容