Учитывая слово W, я хочу найти все слова, содержащие буквы в W, из /usr/dict/words. Например, "bat" должен возвращать "bat" и "tab" (но не "table" ).
Вот одно решение, которое включает в себя сортировку входного слова и соответствия:
word=$1
sortedWord=`echo $word | grep -o . | sort | tr -d '\n'`
while read line
do
sortedLine=`echo $line | grep -o . | sort | tr -d '\n'`
if [ "$sortedWord" == "$sortedLine" ]
then
echo $line
fi
done < /usr/dict/words
Есть ли лучший способ? Я бы предпочел использовать базовые команды (вместо perl/awk и т.д.), Но все решения приветствуются!
Чтобы уточнить, я хочу найти все перестановки исходного слова. Дополнение или удаление символов не допускается.