
這是我的命令:
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)
編輯:我注意到您實際上已經處理了案件問題。