[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