sed заменяет csv включающим последний символ поискового запроса

Я пытаюсь заменить список слов, найденных в CSV-файле, на разметку индекса (docbook). CSV находится в этом формате:

testword[ -?],testword<indexterm><primary>testword</primary></indexterm>

Это находит все случаи testword с пунктуацией в конце. Эта часть работает. Однако мне нужно, чтобы последний знак препинания был включен в заменяющую часть команды sed.

sed -e 's/\(.*\)/s,\1,g/' index.csv > index.sed

sed -i -f index.sed file.xml

Так, например, This is a testword, in a test.Заменили бы This is a testword,<indexterm><primary>testword</primary></indexterm> in a test.

1 ответ

Решение

Проблема заключается в строке в файле CSV, которая управляет процессом, здесь вы потеряете пунктуацию. Замена:testword[ -?],testword<indexterm><primary>testword</primary></indexterm> от: testword\([ -?]\),testword\1<indexterm><primary>testword</primary></indexterm>

Уже бы решить вашу проблему.

Другие вопросы по тегам