Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/01/2023, à 20:06

cristobal78

(résolu)Numéroter les lignes d'une fenêtre zenity avec la Commande nl

Bonjour à tous

avec une commande find j'obtiens une liste de fichiers.
Via un pipe j'envoie cette liste dans une fenêtre zenity (pour faire plus beau !)

find ..... |  zenity ....

Je vois bien cette liste dans la fenêtre zenity et c'est bien ce que je cherche à faire mais maintenant je voudrais que chaque ligne dans la fenêtre zenity soit numérotée de 1 à ... jusqu'à la dernière ligne.

Un peu comme le fait la commande cat -b ou cat -n

Une idée ?

Dernière modification par cristobal78 (Le 11/01/2023, à 16:12)


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#2 Le 10/01/2023, à 20:54

pingouinux

Re : (résolu)Numéroter les lignes d'une fenêtre zenity avec la Commande nl

Bonsoir,
Ceci ?

find ..... | cat -n | zenity ....

Hors ligne

#3 Le 10/01/2023, à 21:00

Watael

Re : (résolu)Numéroter les lignes d'une fenêtre zenity avec la Commande nl

bonne idée.

 $ find ... | nl -nln -s ' ' | zen...

sinon zenity "désaligne" la première ligne.

Dernière modification par Watael (Le 10/01/2023, à 21:00)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 11/01/2023, à 00:29

cristobal78

Re : (résolu)Numéroter les lignes d'une fenêtre zenity avec la Commande nl

Merci à tous les 2  smile

- Ca marche avec la proposition  de pingouinux    smile   :

|cat -n|

et je n'ai pas le désalignement  de la 1-ere ligne que craignait Watael.

- Ca marche aussi avec la propos de Watael   smile   dans laquelle j'ai remplacé l'espace (ou blanc) " " par ceci : '-  '

|nl -nln -s '-  ' |

pour faire un séparateur plus visible que le blanc.

Cela dit comme je n'avais jamais utilisé la cde "nl" je suis allé consulter le man et j'ai compris ou cru comprendre le fonctionnement des options  -n -l et -s

Mais là où je ne comprends plus c'est pourquoi Watael propose l'option "-nln" c'est à dire avec deux fois "n" ? Pourquoi 2 fois ?
J'ai fait bcp d'essais avec -n, -nl, -nn  ... et j'ai  vu il n'y a pas de doute que c'est bien la syntaxe de Watael qui est la seule à fonctionner.

Dernière modification par Ayral (Le 11/01/2023, à 00:34)


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#5 Le 11/01/2023, à 00:52

Watael

Re : (résolu)Numéroter les lignes d'une fenêtre zenity avec la Commande nl

ce n'est pas -n -l -n, c'est -n ln, où ln est l'indication d'un format (-n FORMAT ou, en long, --number-format=FORMAT).


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 11/01/2023, à 13:24

cristobal78

Re : (résolu)Numéroter les lignes d'une fenêtre zenity avec la Commande nl

salut Watael

merci pour ces éclaircissements bienvenus !  smile
Après être retourné sur le man j'ai finalement opté pour la séquence :

... |nl -n rn -s')  ' |zenity ....

qui me donne un résultat sympa. Donc merci à tous les 2. smile smile smile

Mais franchement ce man n'est vraiment pas commode à lire et à comprendre.
Par exemple pour cette commande nl (que Watael m'a fait découvrir) on lit :

  -n, --number-format=FORMAT
              insérer les numéros de ligne selon FORMAT

et quelques lignes plus bas on lit :

a      numéroter toutes les lignes
t      numéroter seulement les lignes non vides
n      ne pas numéroter les lignes

Oui, je sais, dans un cas il y a -n et dans l'autre il y a n
Ce n'est pas entièrement la faute du man qui n'a pas inventé la commande nl mais bon sang que ce manuel est mal écrit et anti pédagogique et d'ailleurs pratiquement toujours sans exemples, alors que l'exemple est la base même de la pédagogie.
Comment un débutant peut-il s'y retrouver ?
Quand je pense qu'il n'y a pas si longtemps, sur ce même forum, certains "helper" qui n'en avaient que le nom,  au lieu d'aider, se contentaient d'un dédaigneux "RTFM"
A ceux là je dirais volontiers "lisez le vous même le fucking manuel".

Le man à la base est en anglais. Alors que ceux qui se donnent bcp de mal -merci à vous  smile smile smile - pour en donner une version française, aillent jusqu'au bout de leur démarche et enrichissent leur traduction d'exemples.
Je passe en résolu.


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne

#7 Le 11/01/2023, à 13:58

MicP

Re : (résolu)Numéroter les lignes d'une fenêtre zenity avec la Commande nl

Bonjour

cristobal78 a écrit :


Par exemple pour cette commande nl (que Watael m'a fait découvrir) on lit :

  -n, --number-format=FORMAT
              insérer les numéros de ligne selon FORMAT

et quelques lignes plus bas on lit :

a      numéroter toutes les lignes
t      numéroter seulement les lignes non vides
n      ne pas numéroter les lignes

Il fallait tenir compte de la ligne précédente,
ce qui donne :

'"man nl"' a écrit :
…
       STYLE doit être choisi parmi :

       a      numéroter toutes les lignes

       t      numéroter seulement les lignes non vides

       n      ne pas numéroter les lignes

       pBRE   numéroter  seulement  les  lignes ayant une concordance avec l'expression rationnelle basique
              BRE (« basic regular expression »)

…

mais STYLE ne concerne pas l'option courte -n (<=> --number-format)

c'est le paragraphe juste après qui indique quels sont les FORMATs possibles:

'"man nl"' a écrit :
…
       FORMAT doit être choisi parmi :

       ln     justifier à gauche, sans zéro de préfixe

       rn     justifier à droite, sans zéro de préfixe

       rz     justifier à droite, avec des zéros de préfixe

…

=======
Pour lancer une commande nl
on peut utiliser les options sous leur forme courte :

nl -n rn -s ')  '

mais on peut aussi écrire cette même ligne de commande
en utilisant les options longues :

nl --number-format=rn --number-separator=')  '

C'est beaucoup plus long à écrire dans une ligne de commande(s)
mais c'est quand même beaucoup plus lisible (par exemple dans un script)

Dernière modification par MicP (Le 11/01/2023, à 15:14)

Hors ligne

#8 Le 11/01/2023, à 16:10

cristobal78

Re : (résolu)Numéroter les lignes d'une fenêtre zenity avec la Commande nl

@MicP

effectivement

nl --number-format=rn --number-separator=')  '

est beaucoup plus lisible.
Je vais modifier mon script avec cette nouvelle formulation. Comme ça dans quelques années quand je relirai mon script je comprendrai ce que j'avais voulu faire !   lol
Bien vu MicP  smile


Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE

Hors ligne