В данном конкретном случае я бы использовалperl
:
printf '%s\n' foo bar | perl -Mopen=locale -lpe '$_.= " ". reverse$_'
foo oof
bar rab
Который вы можете расширить для работы с графемными кластерами:
$ printf '%s\n' $'complique\u301' |
perl -Mopen=locale -lpe '$_.= " ". join "", reverse/\X/g'
compliqué éuqilpmoc
илиzsh
:
while IFS= read -r line; do
print -r -- $line ${(j::)${(s::Oa)line}}
done
Хотя я бы не стал использовать while read
циклы для обработки текста , даже вzsh
(даже если в данном конкретном случае это не так уж плохо, поскольку используются только встроенные команды ).
В общем случае использование временных файлов, вероятно, является лучшим подходом. С zsh
,вы можете сделать это с помощью:
(){paste -d ' ' $1 <(rev <$1)} =(print -l foo bar)
(, где =(...)
создает и очищает временный файл ).
Замена его конвейерами и некоторой формой tee
ing — это рецепт тупиковой ситуации в общем случае. См. эти похожие вопросы для некоторых подходов и подробностей о тупиковых ситуациях:
( Вопрос другой, но ответ тот же, что и введите здесь описание ссылки)
Вам нужно добавить 0 или 2 в /sys/module/hid _apple/parameters/fnmode.
т.е.:
echo 2 > /sys/module/hid _яблоко/параметры/fnmode
Кажется, существует некоторая путаница в отношении того, в чем может заключаться разница между двумя значениями. Цитирование документации Ubuntu:
0 = disabled : Disable the 'fn' key. Pressing 'fn'+'F8' will behave like you only press 'F8'
1 = fkeyslast : Function keys are used as last key. Pressing 'F8' key will act as a special key. Pressing 'fn'+'F8' will behave like a F8.
2 = fkeysfirst : Function keys are used as first key. Pressing 'F8' key will behave like a F8. Pressing 'fn'+'F8' will act as special key (play/pause).
Обратите внимание, что это также работает для меня в Fedora.