vi движущиеся строки и слова
Я учусь на уроке UNIX, и, к сожалению, мой учитель не самый лучший... Так что мне нужна ваша помощь!
У меня есть файл с именем file1 с текстом:
Roger Mancuso
Xavier Allen
Paul Bibbens
Наш учитель хочет, чтобы мы с помощью одной команды сначала переместили верхнюю строку файла в нижнюю, чтобы она выглядела так:
Xavier Allen
Paul Bibbens
Roger Mancuso
И затем, используя команду ex, мы должны взять первые имена, переместить их после фамилий и отделить их запятой как таковой:
Allen, Xavier
Bibbens, Paul
Mancuso, Roger
Любая помощь, которую вы, ребята, могли бы оказать, была бы очень признательна, я попытался сегодня пойти в кабинет учителей, чтобы спросить его об этом, и он в основном сказал мне потеряться, так что теперь я понятия не имею, что происходит..
Спасибо вам большое!
2 ответа
:m $
- Переместить текущую строку вниз
:%s/\v(\w*) (\w*)/\2, \1/g
- Для второй части
Как насчет этого для второй части?
:%s/\(.*\)\, \(.*\)/\2, \1/g
круглые скобки сохраняют то, что они соответствуют, в переменные, к которым вы можете обращаться как \1 \2 \3 и т. д.