command-line - les - dictionnaire des contraires gratuit



Quel est le contraire de la tête? Je veux tout sauf les premières N lignes d'un fichier (6)

En supposant que votre version de tail le supporte, vous pouvez spécifier le début de la queue après les lignes X. Dans votre cas, vous feriez 2 + 1.

tail -n +3

[[email protected] ~]$ tail -n +3 stack_overflow.txt
CCCC
DDDD
EEEE

https://ffff65535.com

Étant donné un fichier texte de longueur inconnue, comment puis-je lire, par exemple toutes sauf les 2 premières lignes du fichier? Je sais que la tail me donnera les N dernières lignes, mais je ne sais pas ce que N est à l'avance.

Donc pour un fichier

AAAA
BBBB
CCCC
DDDD
EEEE

je veux

CCCC
DDDD
EEEE

Et pour un fichier

AAAA
BBBB
CCCC

J'aurais juste

CCCC

Essayez sed 1,2d . Remplacer 2 au besoin.


Une solution simple utilisant awk:

awk 'NR > 2 { print }' file.name

Utilisez ceci, en supposant que le premier échantillon s'appelle sample1.dat, puis tail --lines=3 sample1.dat qui imprimerait toutes les lignes de la troisième ligne à la dernière ligne.

Pour le second exemple, supposons encore qu'il s'appelle sample2.dat ce serait tail --lines=-1 sample2.dat qui imprimerait la dernière ligne ...


tail --help donne ce qui suit:

  -n, --lines=K            output the last K lines, instead of the last 10;
                           or use -n +K to output lines starting with the Kth

Donc, pour filtrer les 2 premières lignes, -n +3 devrait vous donner la sortie que vous recherchez (commencer à partir du 3ème).


tail -n +linecount filename commencera à être linecount au niveau de la ligne de filename de filename , donc tail -n +3 filename devrait faire ce que vous voulez.





unix-head