j'ai un fichier de données, avec une première ligne d'en-tête. J'aimerais
trier le fichier, sauf la première ligne. Et je ne trouve pas de façon
élégante de le faire.
Je peux supprimer la première ligne, mais je ne trouve pas de façon
élégante de la remettre ensuite... Je sais faire un script qui sauvera
dans une variable la première ligne, fera le tri, remettra la ligne,
mais bon, c'est un peu lourd...
sed 1d toto.csv | sort > toto-sorted.csv
--
À mesure que les inégalités regressent, les attentes se renforcent.
François Dubet
Stephane Chazelas , dans le message , a écrit : > De meme que pour "sed" et "tail", le standard le guarantit si > "fichier" est seekable.
[citation needed]
Citation given by Jeremie up-thread.
-- Stephane
2012-06-25 15:51:47 +0000, Nicolas George:
Stephane Chazelas , dans le message
<20120625125848.GD11186@chaz.gmail.com>, a écrit :
> De meme que pour "sed" et "tail", le standard le guarantit si
> "fichier" est seekable.
> les && et la variable, je veux bien, mais je ne vois pas l'interêt du IFS > > dans le cas présent : > > v2$ printf '1 2 3t5 6 7' | > (read -r REPLY && printf ":%s:n" "$REPLY") | cat -vt > :1 2 3^I5 6 7:
Revenons un peu en arrière. Quand on ne passe pas de paramètre au builtin ''read'' de bash, celui-ci met le résultat dans la variable REPLY, sans supprimer les caractères blancs de début et de fin.
[...]
...et se comporte differemment de zsh ou ksh:
~$ echo $' atb c nx ' | zsh -c 'read -r; printf "%sn" "$REPLY"' a b c ~$ echo $' atb c nx ' | ksh -c 'read -r; printf "%sn" "$REPLY"' a b c ~$ echo $' atb c nx ' | bash -c 'read -r; printf "%sn" "$REPLY"' a b c
> les && et la variable, je veux bien, mais je ne vois pas l'interêt du IFS > > dans le cas présent :
>
> v2$ printf '1 2 3t5 6 7' |
> (read -r REPLY && printf ":%s:n" "$REPLY") | cat -vt
> :1 2 3^I5 6 7:
Revenons un peu en arrière.
Quand on ne passe pas de paramètre au builtin ''read'' de bash, celui-ci
met le résultat dans la variable REPLY, sans supprimer les caractères
blancs de début et de fin.
[...]
...et se comporte differemment de zsh ou ksh:
~$ echo $' atb\ c \nx ' | zsh -c 'read -r; printf "%sn" "$REPLY"'
a b c
~$ echo $' atb\ c \nx ' | ksh -c 'read -r; printf "%sn" "$REPLY"'
a b c
~$ echo $' atb\ c \nx ' | bash -c 'read -r; printf "%sn" "$REPLY"'
a b c
> les && et la variable, je veux bien, mais je ne vois pas l'interêt du IFS > > dans le cas présent : > > v2$ printf '1 2 3t5 6 7' | > (read -r REPLY && printf ":%s:n" "$REPLY") | cat -vt > :1 2 3^I5 6 7:
Revenons un peu en arrière. Quand on ne passe pas de paramètre au builtin ''read'' de bash, celui-ci met le résultat dans la variable REPLY, sans supprimer les caractères blancs de début et de fin.
[...]
...et se comporte differemment de zsh ou ksh:
~$ echo $' atb c nx ' | zsh -c 'read -r; printf "%sn" "$REPLY"' a b c ~$ echo $' atb c nx ' | ksh -c 'read -r; printf "%sn" "$REPLY"' a b c ~$ echo $' atb c nx ' | bash -c 'read -r; printf "%sn" "$REPLY"' a b c
~$ echo $' atb c nx ' | zsh -c 'read -r; printf "%sn" "$REPLY"' a b c ~$ echo $' atb c nx ' | ksh -c 'read -r; printf "%sn" "$REPLY"' a b c ~$ echo $' atb c nx ' | bash -c 'read -r; printf "%sn" "$REPLY"' a b c
~$ echo $' atb\ c \nx ' | zsh -c 'read -r; printf "%sn" "$REPLY"'
a b c
~$ echo $' atb\ c \nx ' | ksh -c 'read -r; printf "%sn" "$REPLY"'
a b c
~$ echo $' atb\ c \nx ' | bash -c 'read -r; printf "%sn" "$REPLY"'
a b c
~$ echo $' atb c nx ' | zsh -c 'read -r; printf "%sn" "$REPLY"' a b c ~$ echo $' atb c nx ' | ksh -c 'read -r; printf "%sn" "$REPLY"' a b c ~$ echo $' atb c nx ' | bash -c 'read -r; printf "%sn" "$REPLY"' a b c