Un truc que je n'ai jamais réussi à faire proprement avec les commandes de bases, c'est de transposer (lignes vers colonnes et colonnes vers lignes). Et je n'ai pas trouvé dans cette page comment faire.
Le cas d'usage est simple: si je veux faire une manipulation sur des colonnes et pas sur des lignes (un grep ou un sed), alors je transpose, je grep ou sed, puis je re-transpose.
"chez moi"™ : malgré les deux espaces, le "f" n'est pas en troisième colonne…
$echo"a b c\nd e\n f"a b c\nd e\n f$echo -e "a b c\nd e\n f"a b cd e f$printf'%s\n'"a b c\nd e\n f"a b c\nd e\n f$printf'%b\n'"a b c\nd e\n f"a b cd e f
Je ne sais pas s'il y a une solution universelle et native à la transposition… Si tu veux vraiment un binaire, j'avais trouvé ce transpose en C sympa (mais il est vrai que pour cet usage simple, awk ou perl fait très bien l'affaire, si on s'y connait.) Il y également ce transpose en Python qui semble pas mal (ça fait déjà plus de choses…)
À une époque où j'avais souvent besoin de ce genre de chose et ne travaillant que sur mon poste, je m'en remettais à Vim !
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Je faisais allusion au résultat de ton premier écho, avant tout passage par t, qui aligne le "f" sous le "c" ;-)
PS. Vim se pipe… mais en bout de chaîne en général. Mais t'as raison parce-que son usage comme filtre est pénible d'une part, et mon besoin était pour des fichiers de documentation et non des scripts d'autre part.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# vertical / horizontal
Posté par fabien . Évalué à 1.
Un truc que je n'ai jamais réussi à faire proprement avec les commandes de bases, c'est de transposer (lignes vers colonnes et colonnes vers lignes). Et je n'ai pas trouvé dans cette page comment faire.
Le cas d'usage est simple: si je veux faire une manipulation sur des colonnes et pas sur des lignes (un grep ou un sed), alors je transpose, je grep ou sed, puis je re-transpose.
Ca fonctionne sur des tables non rectangulaires (jusqu'à un point qui me convient), et ça se pipe facilement.
(ça compresse les espaces multiples)
Bref, j'ai ça depuis 20 ans dans mes scripts que je trimballe d'une boîte à l'autre.
Une idée pour faire ça avec le commandes courantes du shell ?
[^] # Re: vertical / horizontal
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
"chez moi"™ : malgré les deux espaces, le "f" n'est pas en troisième colonne…
Je ne sais pas s'il y a une solution universelle et native à la transposition… Si tu veux vraiment un binaire, j'avais trouvé ce
transpose
en C sympa (mais il est vrai que pour cet usage simple,awk
ouperl
fait très bien l'affaire, si on s'y connait.) Il y également cetranspose
en Python qui semble pas mal (ça fait déjà plus de choses…)À une époque où j'avais souvent besoin de ce genre de chose et ne travaillant que sur mon poste, je m'en remettais à Vim !
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: vertical / horizontal
Posté par fabien . Évalué à 1.
C'est mon script qui compresse les espaces (le double pipe
| t | t
)oui, mais ça ne se pipe pas.
Je note le transpose en Python, il y a beaucoup plus de possibilités.
[^] # Re: vertical / horizontal
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 25 novembre 2022 à 16:54.
Oui, j'ai bien lu que t'as bien marqué
Je faisais allusion au résultat de ton premier écho, avant tout passage par
t
, qui aligne le "f" sous le "c" ;-)PS. Vim se pipe… mais en bout de chaîne en général. Mais t'as raison parce-que son usage comme filtre est pénible d'une part, et mon besoin était pour des fichiers de documentation et non des scripts d'autre part.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: vertical / horizontal
Posté par Guillawme (site web personnel, Mastodon) . Évalué à 2.
Je ne l’ai pas testé, mais c’est apparemment exactement ce que fait la commande
vipe
de la suite d’outilsmoreutils
.[^] # Re: vertical / horizontal
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 1.
Excellent ! J'étais passé à côté de ça. Merci.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.