#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
- Ca marche avec la proposition de pingouinux :
|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 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 !
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.
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 - 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
…
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 FORMATet 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 :
… 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:
… 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 !
Bien vu MicP
Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE
Hors ligne