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>
已经可以解决您的问题了。
我正在尝试用索引标记 (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>
已经可以解决您的问题了。