Практическое задание

Эта задача — шаг 13 курса «Текст в консоли: grep, sed, awk»

sed: строки для /etc/hosts

средне~5 мин

В /root/servers.txt строки вида имя ip (например, db-01 10.0.2.21). Для /etc/hosts нужен обратный порядок: ip имя. Переставь колонки с помощью sed и запиши результат в /root/hosts.part.

Что потренируешь:
  • sed -E
  • группы захвата
  • обратные ссылки
  • перестановка полей

Разбор темы

Поменять части строки местами в sed помогают группы захвата: в шаблоне нужные куски берут в круглые скобки, а в замене выводят их по номерам \1, \2 в любом порядке и с любыми разделителями. С -E скобки работают как группы без экранирования. Классы символов для каждой группы стоит выбирать так, чтобы группа не «перелезла» через разделитель: имя хоста состоит из букв, цифр и дефиса, адрес — из цифр и точек, пробела нет ни в одном.

Что проверяется

  1. колонки переставлены: ip имя

Как это выглядит