Один из способов перемешивания с различной интенсивностью может заключаться в том, чтобы взять отсортированный список и произвести переменное количество случайных перестановок (следя за тем, чтобы элементы не перемещались более одного раза).
shuffle() {
awk -v n="$1" '
{line[NR]=$0; i[NR] = NR}
END{
if (n > NR/2) {
print "two many permutations"
exit(1)
}
srand()
for (x = 1; x <= NR; x++) {
# shuffle the list of indicies
y = int(rand() * NR) + 1
tmp = i[x]; i[x] = i[y]; i[y] = tmp
}
for (x = 1; x <= n; x++) {
# get the lines to permute from the head of the shuffled
# list of indices
y = i[x*2-1]; z = i[x*2]
tmp = line[y]; line[y] = line[z]; line[z] = tmp
}
for (x = 1; x <= NR; x++) print line[x]
}'
}
$ seq 10 | shuffle 0 | paste -sd , -
1,2,3,4,5,6,7,8,9,10
$ seq 10 | shuffle 1 | paste -sd , -
1,2,6,4,5,3,7,8,9,10
$ seq 10 | shuffle 5 | paste -sd , -
9,6,5,10,3,2,8,7,1,4
shuffle 5
гарантирует, что ни один из элементов не сохранит свою исходную позицию (shuffle n
гарантирует, что 2 * n элементов получат другое положение). Есть некоторые перетасовки, которых он никогда не достигнет. Например, для списка 1,2,3 единственными возможными результатами являются 2,1,3
, 3,2,1
и 1,3,2
. Not 3,1,2
При случайном порядке 5
вы также можете получить 6,7,8,9,10,1,2,3,4, 5
, который, возможно, не очень перемешан.
Символ A0
— неразрывный пробел. Похоже, что-то среднее между «Jakieś» и «informacje». Используйте свой редактор, чтобы заменить его на обычный пробел, и все будет хорошо.
Совет :Я настроил свои редакторы (emacs, vim )для выделения неразрывных пробелов, потому что иногда я непреднамеренно набираю некоторые с AltGr + пробел , когда Я нажал пробел после ввода символа, требующего нажатия AltGr .
Предупреждения после вашего первого предположения, кажется, показывают, что некоторые символы (ę, ś, ż... )закодированы с комбинацией диакритических знаков, а не изначально. Например. ę == e (hex 65 )+ сочетание огонек (hex 328 ), а не "e с огонеком" (hex 119 ). Как вы редактируете исходный файл? Вы можете использовать клавишу Compose для создания «автономных» букв -с диакритическими знаками -, например. Составьтеe , для "ę".
Проблема может быть связана с устаревшей версией groff
.
См. по этой ссылке .