我经常需要 fzf 已适当过滤的所有文本行。它允许我滚动浏览列表。我只能选择其中之一(或通过单独标记来选择更多)。但我希望它们全部(转储到文件中或通过管道传输)以便使用 awk 和其他命令进行进一步处理。这可能吗?
答案1
查看--multi
选项即可选择多个。例如,与:
fzf --multi --print0 --bind 'enter:select-all+accept' |
gawk -v RS='\0' '{something with $0}; END{print NR}'
按选择Enter全部并接受,将 NUL 分隔的输出发送到 gawk。
accept
您还可以选择execute(the awk command with {+f})
或什至选择preview
输出,而不是输入,awk
这样您就可以在每次调用时执行多个选择fzf
。
例如,
fzf --multi --print0 --bind 'enter:select-all+preview(
awk -v RS="\0" "END{print NR}" {+f})'
每次按 都会在预览窗口中打印过滤后的文件数Enter。