В оболочку встроен сепаратор переменного поля расширения. Так что если у вас есть строка и ваш разделитель сплошной, вы можете сделать:
var=32768,'dff0207a-591f-4435-9f8b-7b9b3e6ba2c1','d1f77359b3f7236806489ba3108c771f','NUMBER','US_EN','LATIN','GREEK','GERMAN'
( IFS=,; set -f
for field in $var
do printf '\n%s\n\t' "$field - md5:" >&2
printf %s "$field" |
md5sum
done |
cut -d\ -f1
)
32768 - md5:
f43764367fa4b73ba947fae71b0223a4
dff0207a-591f-4435-9f8b-7b9b3e6ba2c1 - md5:
0983e6c45209f390461c1b1df9320674
d1f77359b3f7236806489ba3108c771f - md5:
07d82ab57ba81f991ab996bd7c5a0441
NUMBER - md5:
34f55eca38e0605a84f169ff61a2a396
US_EN - md5:
c9d3e580b7b102e864d9aea8703486ab
LATIN - md5:
0e869135050d24ea6e7a30fc6edbac6c
GREEK - md5:
d4cacc28e56302bcec9d7af4bba8c9a7
GERMAN - md5:
ed73cca110623766d7a2457331a4f373
Это должно дать вам список md5s, разделенных на новые строки - как это сделал я.
IFS=,
используется для указания, что при любом расширении оболочки типа переменной оболочка должна разделяться на символ ,
, а не на символ <пробел>
- что является значением по умолчанию. Набор -f
используется для указания, что если оболочка должна столкнуться с какими-либо глобусами файла в нецитируемом расширении, то она не должна их расширять - поэтому echo *
будет печатать только *
независимо от содержимого текущей директории.
Для каждого поля, разделенного запятыми в $var
оболочка делает вывод "$field" | md5sum
- таким образом, один раз на каждое поле без разделительных строк, как я понимаю вопрос. И последняя cut
обрезает несколько пробелов и -
в конце каждой выходной строки по мере их получения. Большая часть вывода на самом деле составляет stderr
- cut
только когда-нибудь видит md5sums
.
Используйте http://sourceforge.net/projects/perwindowlayout/. Я попробовал, и это хорошо работает на флуксбоксе. Это дает преимущество опции grp
:
grp Key(s) to change layout
В примере http://sourceforge.net/projects/perwindowlayout/files setxkbmap
используется так:
setxkbmap -layout 'us,ru(winkeys)' -model pc105 -option grp:rwin_toggle,grp_led:num
Это означает, что для изменения раскладки с us
на ru
используется правый ключ Win (также известный как super key). Когда perwindowlayout
запускается после этого, нажатие правой клавиши Win изменит раскладку клавиатуры только в активном окне.