Ce n'est pas quelque chose grep. Le nom "grep" lui-même est un acronyme pour " rechercher globalement une expression régulière et imprimer", ce que fait la edcommande g/re/p(pour une expression régulière donnée re).
edest un éditeur de ligne interactif de 1969, mais il est probablement installé sur votre système aujourd'hui. Nous venons grepde ed, et cela peut être vu comme un raccourci ou un alias pour une fonctionnalité spécifique de ed, et sed, qui est "stream- ed", c'est-à-dire un éditeur de flux (non interactif).
Utilisons à la sedplace:
$ sed -n '1p' file.txt
La 1pchaîne est un minuscule sed"script" qui affiche ( p) la ligne correspondant à l'adresse donnée ( 1, la première ligne). La commande d'édition 1pferait (sans surprise) la même chose dans l' edéditeur d'ailleurs.
Le -nsupprime la sortie de tout ce qui n'est pas explicitement imprimé par le script, donc tout ce que nous obtenons est la première ligne du fichier file.txt.
Alternativement:
$ sed '1q' file.txt
Cela imprime toutes les lignes du fichier, mais quitte ( q) à la ligne 1 (après l'avoir imprimé). C'est exactement équivalent à head -n 1 file.txt.
Dans la norme POSIX, il est dit (généralisation) que head -n Nc'est à peu près la même chose sed 'Nq', c'est-à-dire "imprimer chaque ligne, mais quitter à la ligne N". La raison qui a headété incluse dans la norme était due à la symétrie avec tail(et la compatibilité descendante avec les implémentations Unix existantes).
head -1 file.txtfonctionnerait pas?