修改fzf去掉perl依赖应用到容器

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)}' 

https://github.com/rickywu/fzf

你可能感兴趣的:(修改fzf去掉perl依赖应用到容器)