fzf可以快速调用历史命令,但依赖perl,容器中使用还得加上perl依赖就不太合理了,sed和awk都能作为替代方案。
Bash内置的fc命令输出,用\x00作为记录分隔符
sed或者awk处理多行文本并用hex 00分隔
sed:
fc -lr -2147483648 |
sed -z -r -e 's/([0-9]+\t) +/\1/g;s/\n([0-9]+\t)/\x00\1/g;'
awk:
fc -lr -2147483648 |
awk 'BEGIN{RS="\n[0-9]+\t ";ORS="\x00";OFS=""}
NR==1{$0=gensub(/^([0-9]+\t) +/,"\\1","g",$0)}
{print num,$0}
{num=gensub(/\n([0-9]+\t) +/,"\\1","g",RT)}'