Si les lignes tabulées sont celles qui ont un caractère de tabulation:
grep '␉' <input_file >output_file
( ␉
étant un caractère de tabulation littéral) ou équivalent
sed -n '/␉/p' <input_file >output_file
Dans un script bash / ksh / zsh, vous pouvez écrire $'\t'
pour un onglet, par exemple grep $'\t'
ou sed -n $'/\t/p'
.
Si vous souhaitez éliminer 10 lignes au début du fichier:
tail -n +11 <input_file >output_file
(notez que c’est +11
pour éliminer 10 lignes, car cela +11
signifie «commencez à partir de la ligne 11» et les numéros de queue de 1) ou
sed '1,10d' <input_file >output_file
Sous Linux, vous pouvez utiliser l' -i
option de GNU sed pour modifier les fichiers en place:
sed -i -n '/\t/p' *.txt
Ou vous pouvez utiliser une boucle shell et des fichiers temporaires:
for x in *.txt; do
tail -n +11 <"$x" >"$x.tmp"
mv "$x.tmp" "$x"
done
Ou si vous ne voulez pas modifier les fichiers à la place, mais leur donner un nom différent:
for x in *.txt; do
tail -n +11 <"$x" >"${x%.txt}.data"
done
sed -i -e 1,3d yourfile
. Cela ne fera écho à rien, cela modifiera simplement le fichier sur place. Si vous n'avez pas besoin de diriger le résultat vers une autre commande, c'est plus simple.