ASCII l'art des lettres, avec les lettres utilisant leurs propres caractères

Si j'exécute

banner ABC 

Je reçois:

  # ###### ##### # # # # # # # # # # # # # ###### # ####### # # # # # # # # # # # ###### ##### 

et un autre programme, figlet , a des fonts plus élaborées et des mécanismes pour joindre des caractères adjacents, par exemple:

  _ ____ ____ / \ | __ ) / ___| / _ \ | _ \| | / ___ \| |_) | |___ /_/ \_\____/ \____| 

mais que se passe-t-il si je veux que chaque lettre soit imprimée en utilisant seulement cette lettre, c'est-à-dire:

  A BBBBBB CCCCC AABBCC AABBC AA BBBBBB C AAAAAAA BBC AABBCC AA BBBBBB CCCCC 

ou mieux encore, quelque chose de plus compact, comme:

  A BBBB CCCC AABBCAA BBBB C AAAAA BBCAA BBBB CCCC 

? Quelle est la façon la plus simple de réaliser cela?

Il y a quatre fonts optionnelles pour les figlet qui utilisent les lettres de caractères ASCII elles-mêmes pour dessiner de plus grandes versions de ces lettres: Ici ( alphabet , letters et tanja ) ici ou même ( letter ):

alphabet

  b AA BBBB CCC b AABBC aa bbb ccc AAAA BBBB C aabbc AABBC aaa bbb ccc AA BBBB CCC 

lettre

  A BBBB CCC A BBBB CCC AABBCCAABBCC AAAAA BBBB C AAAAA BBBB CAABBCCAABBCCAA BBBB CCC AA BBBB CCC 

des lettres

  bb AAA BBBBB CCCCC aa aa bb cccc AAAAA BB B CC C aa aaa bbbbbb cc AA AA BBBBBB CC aa aaa bb bb cc AAAAAAA BB BB CC C aaa aa bbbbbb ccccc AA AA BBBBBB CCCCC 

tanja

  b) A)aa B)bbbb C)ccc b) A) aa B) bb C) cc a)AAAA b)BBBB c)CCCC A) aa B)bbbb C) a)AAA b) BB c) A)aaaaaa B) bb C) a) A b) BB c) A) aa B) bb C) cc a)AAAA b)BBBB c)CCCC A) aa B)bbbbb C)ccc 

Et peut-être que doh

 $ figlet -f doh abcABC bbbbbbbb b::::::bb::::::bb::::::bb:::::b aaaaaaaaaaaaa b:::::bbbbbbbbb cccccccccccccccc a::::::::::::ab::::::::::::::bb cc:::::::::::::::c aaaaaaaaa:::::ab::::::::::::::::bc:::::::::::::::::c a::::ab:::::bbbbb:::::::bc:::::::cccccc:::::c aaaaaaa:::::ab:::::bb::::::bc::::::c ccccccc aa::::::::::::ab:::::bb:::::bc:::::ca::::aaaa::::::ab:::::bb:::::bc:::::ca::::aa:::::ab:::::bb:::::bc::::::c ccccccc a::::aa:::::ab:::::bbbbbb::::::bc:::::::cccccc:::::c a:::::aaaa::::::ab::::::::::::::::bc:::::::::::::::::c a::::::::::aa:::ab:::::::::::::::b cc:::::::::::::::c aaaaaaaaaa aaaabbbbbbbbbbbbbbbb cccccccccccccccc AAA BBBBBBBBBBBBBBBBB CCCCCCCCCCCCC A:::AB::::::::::::::::B CCC::::::::::::C A:::::AB::::::BBBBBB:::::B CC:::::::::::::::C A:::::::A BB:::::BB:::::BC:::::CCCCCCCC::::C A:::::::::AB::::BB:::::BC:::::C CCCCCC A:::::A:::::AB::::BB:::::BC:::::CA:::::AA:::::AB::::BBBBBB:::::BC:::::CA:::::AA:::::AB:::::::::::::BB C:::::CA:::::AA:::::AB::::BBBBBB:::::BC:::::CA:::::AAAAAAAAA:::::AB::::BB:::::BC:::::CA:::::::::::::::::::::AB::::BB:::::BC:::::CA:::::AAAAAAAAAAAAA:::::AB::::BB:::::BC:::::C CCCCCC A:::::AA:::::A BB:::::BBBBBB::::::BC:::::CCCCCCCC::::C A:::::AA:::::AB:::::::::::::::::B CC:::::::::::::::C A:::::AA:::::AB::::::::::::::::B CCC::::::::::::C AAAAAAA AAAAAAABBBBBBBBBBBBBBBBB CCCCCCCCCCCCC 

Une autre option consiste à utiliser la police alphabétique avec FIGlet:

 $ wget http://www.figlet.org/fonts/alphabet.flf $ figlet -f alphabet.flf ABC AA BBBB CCC AABBC AAAA BBBB CAABBCAA BBBB CCC 

Avec canvast :

 $ canvast -f letter ABC A BBBB CCC AABBCC AAAAA BBBB CAABBCCAA BBBB CCC 

Cette police de letter est une police de police qui est livrée avec le package canvast-fonts sur Debian au less. Après que ce package est installé, vous pouvez également utiliser cette police avec figlet ( figlet -f letter ).

(C'était la réponse initiale à la question.)

Une option serait de modifier la source de sysvbanner. Apparemment, ce n'est pas trop difficile, le voici . Essentiellement simplement replace # 's avec les caractères appropriés, une fois.

Je voudrais d'autres réponses qui n'implique pas la compilation d'un binary, cependant.