J'ai plusieurs fichiers contenant des informations textuelles ascii dans les 5 à 10 premières lignes, suivies d'informations matricielles bien tabulées. Dans un script shell, je souhaite supprimer ces premières lignes de texte afin de pouvoir utiliser les informations de matrice pures dans un autre programme. Comment puis-je utiliser les commandes bash shell pour faire cela ?
Si cela peut vous aider, j'utilise RedHat et un système Linux Ubuntu.
Réponse acceptée :
Tant que le fichier n'est pas un lien symbolique ou un lien physique, vous pouvez utiliser sed, tail ou awk. Exemple ci-dessous.
$ cat t.txt
12
34
56
78
90
sed
$ sed -e '1,3d' < t.txt
78
90
Vous pouvez également utiliser sed sur place sans fichier temporaire :sed -i -e 1,3d yourfile
. Cela ne fera écho à rien, il modifiera simplement le fichier sur place. Si vous n'avez pas besoin de rediriger le résultat vers une autre commande, c'est plus simple.
queue
$ tail -n +4 t.txt
78
90
mauvais
$ awk 'NR > 3 { print }' < t.txt
78
90