Это не то, что grepделает. Само название «grep» является аббревиатурой от « поиска в регулярном выражении глобально и печати», что и делает edкоманда g/re/p(для данного регулярного выражения re).
edинтерактивный линейный редактор 1969 года, но, тем не менее, он, скорее всего, установлен в вашей системе сегодня. Мы получили grepот ed, и это можно рассматривать как ярлык или псевдоним для конкретной функциональности ed, и sed, что «ручейки ed», т.е. (неинтерактивный) поток редактор.
Давайте использовать sedвместо этого:
$ sed -n '1p' file.txt
1pСтрока представляет собой миниатюрный sed«сценарий» , который печатает ( p) линия , соответствующая данному адресу ( 1первая строка). Кстати, команда редактирования 1p(не удивительно) будет делать то же самое в edредакторе.
-nПодавляет вывод ничего явно не напечатанной по сценарию, так что все , что мы получаем это первая строка файла file.txt.
В качестве альтернативы:
$ sed '1q' file.txt
Это печатает все строки файла, но выходит ( q) в строке 1 (после печати). Это в точности эквивалентно head -n 1 file.txt.
В стандарте POSIX говорится (обобщая), что head -n Nэто почти то же самое sed 'Nq', что «печатать каждую строку, но выходить в строке N». Причина headбыла включена в стандарт вообще из-за симметрии tail(и обратной совместимости с существующими реализациями Unix).
head -1 file.txtбудет работать?