Изменение последнего символа в найденных последовательностях

Я хочу изменить каждый первый / в стороне \ukindex на ! .

E.g. \ukindex{duality/weak|)}% becomes \ukindex{duality!weak|)}%.

Я могу найти все такие вхождения с помощью grep linear-programming.tex -e '\ukindex{[^/^}]\+/'.

Но я не знаю, как написать для него соответствующий sed. Это не работает:

 sed -i 's/\ukindex{[^/^}]\+//\ukindex{[^/^}]\+!/g' 
0
15.09.2016, 07:58
1 ответ

Итак, это работает следующим образом

sed -i 's/\(\ukindex{[^/^}]\+\)\//\1!/g'
  • () в первой части определяют группы (фактически строки), которые могут быть повторно использованы во второй части
  • \1 во второй части являются ссылками на первую группу, взятую в первой части
1
28.01.2020, 02:47

Теги

Похожие вопросы