Це не щось 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не працює?