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>
Уже бы решить вашу проблему.