Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Script pour supprimer la première ligne d'un fichier texte ?

4 réponses
Avatar
loop
Bonjour,


est ce possible d'automatiser la suppression de la première ligne de chaque
fichier d'un répertoire. Ce répertoire contient des fichiers texte dont la
1ère ligne est à supprimer.

merci de votre aide

4 réponses

Avatar
gda
Salut,

ceci devrait faire ce que tu veux

sed "1d" <fichier_source>.txt > <fichier_destination>.txt


loop wrote:

Bonjour,


est ce possible d'automatiser la suppression de la première ligne de chaque
fichier d'un répertoire. Ce répertoire contient des fichiers texte dont la
1ère ligne est à supprimer.

merci de votre aide





--
GDa

merci de ne répondre que dans le newsgroup
sinon remplacer _at_ par @ dans mon adresse
(adresse rarement relevée)

Avatar
Stephane Chazelas
2005-01-6, 15:41(+01), loop:
est ce possible d'automatiser la suppression de la première ligne de chaque
fichier d'un répertoire. Ce répertoire contient des fichiers texte dont la
1ère ligne est à supprimer.


Avec zsh:

for f (repertoire/*(.)) {{rm $f && tail +2 > $f} < $f}

Ou avec GNU sed:

sed -si -e 1d repertoire/*(.)

Avec d'autres shells que zsh, enlever le (.) mais verifier que
les fichiers dans /repertoire/ sont bien tous des fichiers
reguliers.

Avec vim:

vim -u NONE -esc 'argdo 1d|w' -c q repertoire/*(.)

--
Stephane

Avatar
l'indien
On Thu, 06 Jan 2005 15:23:06 +0000, Stephane Chazelas wrote:

2005-01-6, 15:41(+01), loop:
est ce possible d'automatiser la suppression de la première ligne de chaque
fichier d'un répertoire. Ce répertoire contient des fichiers texte dont la
1ère ligne est à supprimer.


Avec zsh:

for f (repertoire/*(.)) {{rm $f && tail +2 > $f} < $f}

Ou avec GNU sed:

sed -si -e 1d repertoire/*(.)

Avec d'autres shells que zsh, enlever le (.) mais verifier que
les fichiers dans /repertoire/ sont bien tous des fichiers
reguliers.

Avec vim:

vim -u NONE -esc 'argdo 1d|w' -c q repertoire/*(.)


Il me semble que c'est beaucoup plus simple d'utiliser l'outil dont c'est
le rôle (et qui ne sait faire que celà !) :
tail -n +1 repertoire/*


Avatar
l'indien
On Fri, 07 Jan 2005 00:41:38 +0100, l'indien wrote:

On Thu, 06 Jan 2005 15:23:06 +0000, Stephane Chazelas wrote:

2005-01-6, 15:41(+01), loop:
est ce possible d'automatiser la suppression de la première ligne de chaque
fichier d'un répertoire. Ce répertoire contient des fichiers texte dont la
1ère ligne est à supprimer.


Avec zsh:

for f (repertoire/*(.)) {{rm $f && tail +2 > $f} < $f}

Ou avec GNU sed:

sed -si -e 1d repertoire/*(.)

Avec d'autres shells que zsh, enlever le (.) mais verifier que
les fichiers dans /repertoire/ sont bien tous des fichiers
reguliers.

Avec vim:

vim -u NONE -esc 'argdo 1d|w' -c q repertoire/*(.)


Il me semble que c'est beaucoup plus simple d'utiliser l'outil dont c'est
le rôle (et qui ne sait faire que celà !) :
tail -n +1 repertoire/*


Bon, je vais apprendre à lire, dormir un peu, peut-être réfléchir
avant de poster une ligne aussi idiote, la prochaine fois ;-)
Désolé...
je rentre dans mon terrier...