[Linux] Un tip de niche avec paste

Arthur Pons arthur.pons@::1
Mer 7 Juin 14:07:58 CEST 2023


Salut à toutes et tous,

On 07/06/2023 13:40, Marc Chantreux wrote:
> dans le même genre: j'ai lu dans un script d'Arthur qu'on pouvait
> facilement regrouper les lignes d'un fichier avec paste
> 
> 	seq 15 | paste - - -
> 
> 	1	2	3
> 	4	5	6
> 	7	8	9
> 	10	11	12
> 	13	14	15

Quelle fierté que d'avoir apporté un tips utile :)

Hop pour la route j'en ajoute un supplémentaire à propos de paste.
On peut écraser tout une colonne sur une seule ligne à l'aide de
-s (ce n'est "en réalité" pas ce que fait -s mais on peut le
"détourner" pour cela) et choisir le délimiteur avec -d.

Un exemple tout à fait de niche dans lequel ça m'est utile :
Je fais un peu des stats en shell (quand ça reste assez simple)
et il m'arrive de devoir sommer des colonnes.

Si l'on a le tsv suivant  :

	seq 20 | paste - -
	
	1       2
	3       4
	5       6
	7       8
	9       10
	11      12
	13      14
	15      16
	17      18
	19      20

et que l'on chercher à sommer la seconde colonne, on peut l'extraire

	seq 20 | paste - - | cut -f2
	
	2
	4
	6
	8
	10
	12
	14
	16
	18
	20

les écraser sur une ligne (et ce sans connaître le nombre de lignes)
avec un délimiteur au choix :

	seq 20 | paste - - | cut -f2 | paste -s -d'+'
	
	2+4+6+8+10+12+14+16+18+20

et le pipe dans bc :

	seq 20 | paste - - | cut -f2 | paste -s -d'+' | bc
	
	110

Bonne journée,
Arthur


Plus d'informations sur la liste de diffusion linux