IgorChe писал(а): ↑15.10.2010 18:11
привет,
помогите пожалста,
к примеру есть на входе файл с вопросами и ответами после каждого вопроса,
хотелось бы средствами vi копировать номера вопросов и вырезать номера ответов в
отдельный файл по порядку, то есть на выходе получаем два файла,
один с вопросами без ответов, второй с номерами вопросов и соответственными
ответами..
по сути сделать файл с ответами просто:
и в нем можно просто пронумеровать ответы по порядку,
а как удалить строки с ответами из исходника, что то не выходит,
пробую
не находит шаблон
вы неправильно применяете регулярные выражения. В первом случае должно быть
(Created by format.vim)
grep ^Answer:
(Во-первых, звёздочка здесь лишняя:
grep и так берёт строку целиком. Во-вторых, звёздочка в вашем примере относится к двоеточию и означает «ноль или более двоеточий», а не то, что вы хотели.)
Во втором шаблоне другая ошибка: знак доллара означает конец строки, а не «с данного места до конца строки». Разумеется, он ничего не находит: ведь после «Answer:» у вас идёт ответ, а не конец строки? Если вы хотите оставить пустые строки, замените всю конструкцию на
(Created by format.vim)
%s/^Answer:.*//g
, если же пустые строки не нужны, используйте
:g:
(Created by format.vim)
%g/^Answer:.*/d
(Здесь
d — это сокращённая запись команды
delete, а не модификатор как
g в
:s.)
Во всех шаблонах я исходил из предположения, что перед ответом ничего нет, если у вас не так, уберите
^.