Флаг / команда, чтобы перемешать буквы слова

Мне нужно создать скрипт, который будет читать слово как ввод и предоставлять вывод в виде перемешанных букв слова.

Например: входное слово как «Azharudeen» и вывод должен быть как «zAhauredne»

0
задан 14 May 2019 в 03:19

2 ответа

Вы могли сделать это с коротким сценарием Python, указанным на командной строке:

$ python -c "import random,sys; chars=list(sys.argv[1]); random.shuffle(chars); print(''.join(chars))" Azharudeen
neuAazrhed

1
ответ дан 14 May 2019 в 03:19

Не самый элегантный, но это работает:

$ echo `echo "Azharudee" | sed -e 's/./&\n/g' | shuf` | sed -e 's/ //g'
Auerdzhae

Правка (для пояснения):

echo "Azharudee"

помещает это слово в стандартный вывод, который передается в

sed -e 's/./&\n/g'

, который помещает каждый символ на свою собственную строку, заменяя каждый символ на себя, после которого следует символ новой строки, и направляет его в

shuf

, который случайным образом перемешивает заданные строки и помещает их на стандартном выходе.

Между тем этот внешний слой объединяет все вышеперечисленное (как «...») в

echo `...` | sed -e 's/ //g'

«Эхо» приводит к объединению нескольких строк, созданных первым набором команд, в один line, и «sed» заменяет все пробелы ничем.

Обратите внимание, что это могло бы быть визуально лучше, если бы я использовал $(echo ... shuf) вместо того, чтобы заключать его в серьезные акценты, которые имеют тот же эффект, но труднее увидеть.

0
ответ дан 14 May 2019 в 03:19

Другие вопросы по тегам:

Похожие вопросы: