LINUX.ORG.RU

sed для строки содержащей x1 и обработать только конец ее содержащий x2

 , , , ,


0

2

есть вот такой файл

$ cat /tmp/SBo/_queues/sbopkg-update.log 
  Installed version:  deadbeef-0.7.2-x86_64-1nk
  Repo version:  deadbeef-0.6.2-x86_64-1nk
  Installed version:  geany-1.29-x86_64-1nk
  Repo version:  geany-1.28-x86_64-1nk
  Installed version:  geany-plugins-1.29-x86_64-1nk
  Repo version:  geany-plugins-1.28-x86_64-1nk

мне надо заменить строку содержащую Repo (x1) и в ней nk заменить на _SBo (x2). И вроде получилось:

$ cat /tmp/SBo/_queues/sbopkg-update.log | sed '/Repo/s/nk/_SBo/'
  Installed version:  deadbeef-0.7.2-x86_64-1nk
  Repo version:  deadbeef-0.6.2-x86_64-1_SBo
  Installed version:  geany-1.29-x86_64-1nk
  Repo version:  geany-1.28-x86_64-1_SBo
  Installed version:  geany-plugins-1.29-x86_64-1nk
  Repo version:  geany-plugins-1.28-x86_64-1_SBo

да не совсем, т.к. будет плохо если где-то в этой строке будет набор символов этот встречаться, а используя наш пример это nk, так н-р conky:

$ cat /tmp/SBo/_queues/sbopkg-update.log | sed '/Repo/s/nk/-=SBo=-/'
  Installed version:  deadbeef-0.7.2-x86_64-1nk
  Repo version:  deadbeef-0.6.2-x86_64-1-=SBo=-
  Installed version:  geany-1.29-x86_64-1nk
  Repo version:  geany-1.28-x86_64-1-=SBo=-
  Installed version:  geany-plugins-1.29-x86_64-1nk
  Repo version:  geany-plugins-1.28-x86_64-1-=SBo=-
  Installed version:  conky-1.9.0-x86_64-1nk
  Repo version:  co-=SBo=-y-1.10.5-x86_64-1nk

Не подскажете, как по sed'у (или при помощи другого инструмента, но хотелось бы sed ограничиться) именно только конец строчки обработать?
На ум конечно приходят всякие echo|rev|cut|rev, но хотелось бы без них

★★★★★

Ответ на: комментарий от akk

Без лишних пайпов дух юникса умрёт.

anonymous
()
Ответ на: комментарий от akk

Нафейхуа ты мне это написал? Пиши ТС, я в курсе про ключ '-i', я исправил команду ТС.

kostik87 ★★★★★
()
Ответ на: комментарий от surefire

sed '/^Repo/ s/nk$/_SBo/'

благодарю, но у меня там в начале 2 пробела еще, но справился (\n для красоты добавил):
sed '/^ Repo/ s/nk$/_SBo\n/'

NK ★★★★★
() автор топика
Ответ на: комментарий от kostik87

sed '/Repo/s/nk$/-=SBo=-/'

спасибо, то что надо

NK ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.