51 votes

Unix cat à partir de la ligne

Quelle est la meilleure façon de sortir un fichier à partir d'une ligne spécifique (un grand nombre comme 70000). Quelque chose comme :

cat --line=70000 <file>

73voto

Baishampayan Ghose Points 9414

Jetez un coup d'œil à tail, plus précisément à son interrupteur --lines=+N :

tail --lines=+100 <file>

24voto

Chris Johnsen Points 36743

Le moyen le plus évident est tail . La syntaxe peut être légèrement différente selon le système d'exploitation que vous utilisez :

tail -n +70000

Si vous ne pouvez pas obtenir tail pour fonctionner, vous pouvez utiliser sed mais elle risque d'être plus lente :

sed -pe '1,69999d'

5voto

Jo Shepherd Points 755

Vous pouvez utiliser NR avec le paramètre awk commandement :

cat <file> | awk '{if (NR>=7000) print}'

3voto

keiki Points 1727

Si, au lieu d'un numéro de ligne, vous souhaitez commencer l'énumération à la ligne contenant un numéro de ligne donné, vous pouvez utiliser la fonction $phrase Essayez ce qui suit.

more -1000 +/"$phrase" yourfilename | sed '1,4d'

L'option -1000 permet de lister le texte en continu jusqu'à 1000 lignes ; vous pouvez modifier cette valeur selon vos besoins. La touche sed coupera les 4 premières lignes de la sortie, qui ont été automatiquement insérées par la commande more qui contient une ligne vierge, le message "... skipping", et les deux lignes précédant la ligne de départ prévue. Je suppose que cela peut varier en fonction de votre système.

-1voto

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X