我部分成功地使用sed替换文本文件中的变量。我被困在一个例外上。
脚本从列表中读取输入 - 比如$roll_symbol
是C20
。
sed取代C20
,GC20
和KC20
(因为C20
匹配字符串的一部分)。
我在网上搜索并尝试了我发现的变化 - 没有成功。 我尝试了这些变化没有成功:
*目前为止最好的版本(但只是部分版本):
sed -i 's/'${roll_symbol}'/'${roll_symbol}\,${contract_month}'/g' $OUTPUT_DIRECTORY/$OUTPUT_FILE;
答案 0 :(得分:2)
你需要告诉sed在比赛开始前哪些字符是合法的,以限制它可以匹配的位置。要仅在字词开头边界匹配,请尝试\<
。
sed -i "s/\<${roll_symbol}/${roll_symbol},${contract_month}/g" "$OUTPUT_DIRECTORY/$OUTPUT_FILE";