Forum Linux.débutant Incompréhension des pipes sur Linux
Bonsoir,
Quelqu'un peut-il m'expliquer pourquoi je n'obtiens pas le résultat attendu.
Je fais inévitablement une erreur de logique, sans comprendre laquelle…
$cat > fichier.txt
cool
pas cool
sympa
pas sympa
ctrl c
$tail -2 fichier.txt | nl fichier.txt
1 cool
2 pas cool
3 sympa
4 pas sympa
Résultat attendu :
$tail -2 fichier.txt | nl fichier.txt
3 sympa
4 pas sympa
Merci !
Forum Programmation.shell Je ne pipe rien à ce pipe
J'ai une commande dont je voudrais filtrer une certaine ligne :
$ sudo dnf history | head
ID | Ligne de commande | Date et heure | Action(s) | Modifié
-------------------------------------------------------------------------------
1024 | install gammaray | 2020-04-11 01:18 | Install | 7
1023 | update | 2020-04-10 19:03 | Upgrade | 51
1022 | update --refresh | 2020-04-09 18:35 | Upgrade | 1
1021 | update | 2020-04-08 19:19
(…)
Forum Programmation.shell Plomberie unixienne
Bonjour,
Je cherche à alimenter une base RRD avec la sortie de la commande vmstat (sous Linux). J’ai créé ma base RRD et je peux l’alimenter manuellement, je n’ai pas de problème de ce côté là.
La commande suivante me sort un enregistrement avec lequel je devrais pouvoir alimenter ma base, toutes les secondes. J’utilise le caractère nul comme séparateur, ce n’est probablement pas une nécessité dans mon cas (donnée RRD…) mais j’ai de toute façon le même comportement en (…)
Forum Linux.général connexion ssh instable -- travail sur machine distante
Bonjour,
pour noël, au boulot, j'ai reçu une nouvelle bécane… C'est cool mais depuis
que j'ai cette machine, j'ai plus de problèmes qu'avant et il y en a un qui est
une vraie plaie… La machine en question est un HP ZBook G3, livré avec son
dock thunderbolt.
Contexte
Je suis microélectronicien et je travaille avec la suite Cadence Virtuoso. Les
outils sont installés sur une machine commune pour tous les utilisateurs de mon
service et je me connecte (…)
Forum général.général Python / (linux) shell : interfacer l'un avec l'autre
Bonjour, j'aimerais utiliser la sortie d'un programme écrit en Python3 pour que ce programme donne au shell une liste de fichiers, que le shell récupère cette liste via un pipe et que je puisse placer une commande shell sur cet ensemble de fichiers.
Quelque chose comme ça (si je veux chercher une chaîne de caractères dans les fichiers) :
./script.py | grep -rHn --color "string" {} \;
Je n'arrive pas à le faire. Pourriez-vous me donner un lien, une piste (…)
Coloriser des flux de texte avec colout
Les réalisateurs de films policiers ne s'y trompent pas : lire des flux de textes en ligne de commande nécessite parfois le super pouvoir de lisibilité.
Bien que les outils GNU soient extrêmement pratiques pour manipuler des flux de texte, il en manquait un pour aider à mettre en valeur l'information importante, sans masquer l'accessoire. Par exemple pour faciliter la lecture de logs s'étendant sur plusieurs lignes ou pour détecter rapidement le numéro de ligne d'un fichier responsable d'une erreur de compilation.
Heureusement, grâce à la commande colout
(aujourd'hui en version 1.0), vous pouvez maintenant très facilement coloriser colorer colorier mettre de la couleur là où vous le souhaitez dans votre ligne de commande.
Basiquement, colout s'utilise comme un filtre de flux de texte classique, généralement après un pipe, et mets en valeur les bouts de texte correspondant à une expression régulière avec une couleur et un style de votre choix :
<flux de texte> | colout <expression régulière> [couleur [style]]
L'IHM de colout est pensée pour être simple tout en permettant des utilisations vraiment intéressantes, telles que le coloriage l'application des couleurs sur les groupes des expressions, l'utilisation de cartes de couleurs (mais si, vous savez, les couleurs de l'arc-en-ciel…), la coloration la mise en valeur de la syntaxe de code source, des thèmes automatiques et même l'application d'une couleur en fonction de la valeur d'un nombre.
pyxshell : piper des flux de texte en pur Python
pyxshell (à prononcer comme vous pouvez) est un module Python qui permet d’enchaîner des fonctions de traitement de flux avec un opérateur « tube » — pipe, en anglais — (|
) , de la même manière qu’avec un shell.
Si — comme moi — vous devez régulièrement analyser à la main des données textuelles diversement structurées sous différents environnements. Si vous affectionnez la ligne de commande sans raffoler de la syntaxe de Bash, vous apprécierez d’avoir tout sous la main à côté de vos outils Python favoris.
Par exemple :
>>> out=[]
>>> (random.randint(0,2) for i in range(10)) | map(lambda x: ["Oui ","nous sommes ","tous différents "][x]) | sort | uniq | tee(sys.stdout) > out
Oui tous différents nous sommes
>>> print(out)
['Oui ', 'tous différents ', 'nous sommes ']
Journal Parlons C, parlons pipe !
Mon livre de chevet, Unleashed C (non je mens, mon livre de chevet reste Playboy, mais ça fait moins sérieux), propose d'implémenter une FIFO (ou "pipe", pour tube en anglais) de la façon suivante (approximativement, j'ai simplifié la représentation (surtout il y avait QUEUE
écrit et je veux pas de problèmes)) :
+----------+
| taille |
+----------+
| debut |-------+
+----------+ |
| fin | |
+----------+ V
| +---+---------+
| | s | donnes |
| +---+---------+
|
(…)