Это не то, что 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
будет работать?