vous pouvez simplement utiliser bash si votre système l'a. L'idée de base est de définir un nombre et d'incrémenter ce nombre pendant l'itération du fichier.
1) la suppression de toutes les lignes sauf la première à partir d'un fichier
read -r line < file; echo "$line" > temp && mv temp file
2) suppression d'une ligne de fichier avec un numéro de ligne
declare -i count=0
while read -r line
do
((count++))
case "$count" in
10) continue;;
*) echo "$line";;
esac
done <file> temp && mv temp file
3) suppression de lignes à partir d'un fichier avec une gamme de numéros de ligne, par exemple de 10 à 20
declare -i count=0
while read -r line
do
((count++))
if (($c < 10 && $c > 20));then
echo "$line";;
fi
done <file> temp && mv temp file
Pour supprimer * toutes les lignes sauf la première *, 'sed '2, $ d' filename', ou' sed '1! d' filen ame', ou 'sed -n '1p' nom de fichier'. – Beta
@Beta, les deux premiers sont exactement corrects, mais le troisième n'imprimera que la première ligne. – dubiousjim
@dubiousjim: «Imprimer la première ligne seulement» est identique à «supprimer toutes les lignes sauf la première», c'est pourquoi 'sed -n '1p'' est également correct. – anubhava