sed 대체가 너무 많은 입력과 일치합니다.

sed 대체가 너무 많은 입력과 일치합니다.

이것은 내 명령입니다:

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

"e"를 "AlphabetE"로 바꾸도록 요청했는데 올바르게 수행되었습니다. 전체 단어만 고려하라는 뜻인 것 같은데요?

이 시도:

echo "test" | sed -f <(sed -e 's/.*/s,\\<&\\>,gI/' mydic)

편집: 실제로 사건 문제를 처리하신 것으로 확인되었습니다.

관련 정보