J'ai plusieurs fichiers dans un dossier et je veux supprimer les premières lignes de chacun d'entre eux. Si je fais ça:
sed -i.bak '1,2000d' *.dat
les 2000 premières lignes sont supprimées, mais le nom du fichier est toujours de la forme *.dat
et les 2 000 lignes suivantes sont également supprimées, et ainsi de suite jusqu'à ce que le fichier soit vide. Comment puis-je réparer cela? De préférence sans script compliqué? Il y a trop de fichiers pour simplement lister tous les noms de fichiers, ils sont trop compliqués pour les taper tous.
Vous pouvez utiliser une boucle for pour que la commande soit exécutée pour chaque fichier exactement une fois:
for file in *.dat; do sed -i.bak '1,2000d' "$file"; done
Remarquez que -i.bak
sauvegarde le fichier d'origine avec la fin de .bak
.