1

Имея файл огромного размера, я могу редактировать с помощью ed, а затем выполнить следующую команду.

g/real/p

Который будет распечатывать все строки, содержащие «реальные».

Я хочу напечатать первые 20.

Я знаю sed, grep, head и т.д. Но я хочу улучшить свои навыки работы с Ed.

2 ответа2

0

Вот один из способов:

ed -s infile <<IN
v/PATTERN/d               # delete all lines NOT matching PATTERN
,w !head -n20             # pass the addressed lines as input to shell command
u                         # undo deletion: not needed if you don't save changes
q                         # quit editor
IN
0

Вы можете указать диапазоны перед вашими командами в форме from,to .

1,4p

будет печатать строки 1-4.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .