web-dev-qa-db-fra.com

Chat Unix à partir de ligne

Quel est le meilleur moyen de sortir d'un fichier à partir d'une ligne spécifique (grand nombre comme 70000). Quelque chose comme:

cat --line=70000 <file>
38
vonhogen

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

tail --lines=+100 <file>
58
Svend

La manière la plus évidente 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 au travail, vous pouvez utiliser sed, mais cela risque de ralentir:

sed -pe '1,69999d'
21
Chris Johnsen

Si, au lieu d’un numéro de ligne, vous devez commencer à répertorier sur la ligne contenant un $phrase donné, essayez ce qui suit.

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

Le -1000 listera en permanence le texte sur 1000 lignes maximum; vous pouvez changer cela au besoin. La commande sed coupera les 4 premières lignes de sortie, qui ont été automatiquement insérées par more, contenant une ligne vide, le message "... sautant" et les deux lignes précédant votre ligne de départ. Je suppose que cela peut varier en fonction de votre système.

2
AlohaUnixFan

Vous pouvez utiliser le paramètre NR avec la commande awk :

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