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>
command-line
cat
vonhogen
la source
la source
wc -l $1 | awk '{print $1}'
; linéno =expr $lineno - $2
; tail -n $ lineno $ 1; }tail -n
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:Si vous ne pouvez pas vous rendre
tail
au travail, vous pouvez utilisersed
, mais cela risque de ralentir:la source
tail
fonctionnait parfaitement dans MinGW (sur un fichier texte de 600 Mo). Le temps d'exécution n'était que de quelques secondes (mais le fichier d'entrée aurait déjà été dans le cache de fichiers).Si, au lieu d’un numéro de ligne, vous devez commencer à répertorier la ligne contenant une donnée
$phrase
, essayez ce qui suit.Le -1000 listera en permanence le texte sur 1000 lignes maximum; vous pouvez changer cela au besoin. La
sed
commande coupera les 4 premières lignes de la sortie, qui ont été automatiquement insérées parmore
, 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.la source
Vous pouvez utiliser le paramètre NR avec la commande awk :
la source
cat messages | awk '{if (NR>=7000 && NR <7003) print}'
affiche uniquement les lignes 7000, 7001 et 7002.queue +250
plus sur la commande unix cat
la source
tail
suggestion est la même que celle acceptée et d’autres réponses d’il ya des semaines. pourquoi prendre la peine de poster?...can't find the server at www.scripterworld.com.