[gull] Truc et astuces: Apt search en couleurs dans less

felix felix at f-hauri.ch
Fri Oct 20 08:53:41 CEST 2023


Re,

En fait, y'a plus simple!

  aptSearch () {
     script -f /dev/null -c "apt search '$1'" <<<'' |
         sed '1d;$d' |
         less -r ${2:++/}${2}
  }

Rediriger le STDIN de `script` évite que `script` manipule le terminal
et cause des effet bizare genre `stty -echo`, qui supprime l'affichage
des touches tapées... (ce qui nous oblige à taper en aveugle, qqch come
`reset` ou `stty sane`.)

La version précédente utilisait `tac|tac`, puis `read` de la 1ère ligne,
afin d' assurer que la commande `script` soit terminée AVANT que la
commande `less` ne soit executée.

Voire:
    $ apt search something 2>&1 <<<''| head

    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

    En train de trier…
    Recherche en texte intégral…
    agedu/stable 20211129.8cd63c5-1 amd64
      utilitaire Unix pour rechercher l'espace disque gaspillé

alors que:
    $ script -f /dev/null -c 'apt search something 2>&1 <<<""'| head
    Script démarré, le fichier journal de sortie est « /dev/null ».
    En train de trier... Fait
    Recherche en texte intégral... Fait
    ^[[32magedu^[[0m/stable 20211129.8cd63c5-1 amd64
      utilitaire Unix pour rechercher l'espace disque gaspillé

Pas de WARNING et les paquets s'affichent en vert!

Le Sat, Sep 23, 2023 at 06:46:48PM +0200, felix via gull a écrit :
> J'ai enfin trouvé une combine pour lire la sortie de apt search
> dans less:
> 
> Au lieu de 
> 
>   apt search openvpn | less +/openvpn
> 
> qui affiche:
> 
>   WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
> 
> et supprime la colorisation
> 
> Ce que j'ai trouvé de plus simple:
> 
>   script -f /dev/null -c 'apt search openvpn' |
>       tac | tac | { read _ && sed \$d |less -r +/openvpn ;}
> 
> 
> Donc ma fonction:
>   aptSearch () {
>       script -f /dev/null -c "apt search '$1'" | 
> 	  tac | tac | { read _ && sed \$d | less -r ${2:++/}${2} ;}
>   }
> 
> Le premier argument est passé à `apt search`, tandis que le second
> est facultatif, passé a `less` avec ``+/'' si fourni.

-- 
 Félix


More information about the gull mailing list