Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Заменить в txt файле только при совпадении  (Прочитано 27088 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
Здравствуйте.

Есть txt  файл

документ плечо сезон квартира образец
документ плечо сезон лето образец
документ плечо сезон зима образец

нужно заменить "плечо" на "нога" если в строке есть "зима". Что-то с sed никак не выходит. Подскажите, пожалуйста.

Могу с промежуточным файлом сделать, отсортировать, записать в файл, исправить и вернуть обратно. Но явно есть более простой вариант.

Спасибо.

Оффлайн qpdb

  • Забанен
  • Активист
  • *
  • Сообщений: 628
  • xUbuntu 22.04
    • Просмотр профиля
Ввысь, а Вы „классическую😇” команду пробовали применить❓

sed -i '/😞😕/{s:^:😈:}' text.txt —▶ найти строку c „😞😕” и там заменить „^” на „😈”
Тут имеется в виду, что ищем строку в которой есть 😞😕, и в начало этой строки вставляем 😈… Можно пробовать без „{}”…
Посмотрите что будет если:
sed -i '/зима/s:плечо:нога:' text.txt
Мне кажется, что может получиться…
2023 May 10; 07:11 AM; Oakville, ON, Canada.

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 473
    • Просмотр профиля
qpdb, да, оно. Всё получилось.
Большое спасибо.

 

Страница сгенерирована за 0.107 секунд. Запросов: 25.