sed 从 csv 替换包括搜索词的最后一个字符

sed replace from csv include last character of search term

我正在尝试用索引标记 (docbook) 替换在 csv 文件中找到的单词列表。 csv 格式如下:

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

这会找到所有出现的 testword 并在末尾带有标点符号。这部分有效。但是,我需要在 sed 命令的替换部分中包含最后的标点符号。

sed -e 's/\(.*\)/s,,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.

问题出在控制进程的 csv 文件中的字符串,这里你丢失了标点符号。 更换: testword[ -?],testword<indexterm><primary>testword</primary></indexterm> 经过: testword\([ -?]\),testword<indexterm><primary>testword</primary></indexterm>

已经可以解决您的问题了。