这是我的命令:
echo "Test" | sed -f <(sed -e 's/.*/s,&,gI/' mydic)
该文件mydic
包含 2 列,以逗号 ( ,
)分隔
a,AlphabetA
.
.
.
e,AlphabetE
.
.
s,AlphabetS
.
t,AlphabetT
test,testedd
.
.
zebra,zebraaaa
预期的结果是testedd
,但我得到了AlphabetTAlphabetEAlphabetSAlphabetT
。
答案1
echo Test |sed -f <(sed 's/\(.*\),\(.*\)/s,\\<\1\\>,\2,gI/' mydic)
\<和\>分别表示单词的开头和结尾。
答案2
您要求它用“AlphabetE”替换“e”,它做得正确。我怀疑你的意思是只考虑整个单词?
尝试这个:
echo "test" | sed -f <(sed -e 's/.*/s,\\<&\\>,gI/' mydic)
编辑:我注意到您实际上已经处理了案件问题。