Die Sed-Substitution stimmt mit zu vielen Eingaben überein

Die Sed-Substitution stimmt mit zu vielen Eingaben überein

Dies ist mein Befehl:

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

Die Datei mydicenthält 2 durch Kommas getrennte Spalten ( ,)

a,AlphabetA  
.  
.   
.    
e,AlphabetE   
.   
.   
s,AlphabetS  
.   
t,AlphabetT   
test,testedd   
.   
.   
zebra,zebraaaa

Das erwartete Ergebnis ist testedd, aber ich bekomme AlphabetTAlphabetEAlphabetSAlphabetT.

Antwort1

echo Test |sed -f <(sed 's/\(.*\),\(.*\)/s,\\<\1\\>,\2,gI/' mydic)

\<Und\>geben jeweils den Anfang und das Ende eines Wortes an.

Antwort2

Sie haben darum gebeten, „e“ durch „AlphabetE“ zu ersetzen, was auch richtig gemacht wurde. Ich vermute, Sie wollten nur ganze Wörter berücksichtigen?

Versuche dies:

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

Bearbeiten: Mir ist aufgefallen, dass Sie sich tatsächlich mit dem Fallproblem befasst haben.

verwandte Informationen