Лучший способ сгенерировать случайные строки Unicode для файла - PullRequest
0 голосов
/ 08 мая 2020

У меня есть текстовый файл, в котором есть много разных текстовых тегов, для каждого текстового тега я хочу сгенерировать определенное c количество случайных символов Юникода. Вот пример.

                pages: [
                        '{"text":"ᛀ孥ງ盺阉ᰧ펄轙詙㫏鉱猈し谽损찶郩苽ꟾ低კᐵ偱⼥��溰斶퉉倰ꦑ륏쑁洤ᕿᆯ殗媠퓵뉭ꧪ텠띬䡊⊝ᚑ䖩䉧��쾒紨驪։鹓嶺伢꽫⾨閏뚲髌鰣ᯋ왘觽濔૛䙦ꨣ뫱즔슍ㄽٚឣ酭ᇤཛ稳며ᇶ菤큲뭏☗᩟䴄��䪵匧썑ᛁ唽ೂ㴾귬Ⴀ܁럒鋻㤷踂ᦔ㚚즙泱蹑轷ᨭꪃ冿讻௶ꪪ㬛樐荀꜇뒩膜걼줪퍏匫ẜ릣噪뻷婓⠫愣㒹…䮃䙼ネ辞憥㩵爤ޗ럯搯꿶ꏂ犔앙Ძ葐㉱ᩅᘰ㚞桭䤠쀢ೝ铳̴᠚㢘흱艰顱⦜Ü醲빰뿟闊리怳긵﹡殿뽨帼琧롪ؾᎣꞸ஠j"}',
                        '{"text":"깈끒찙蚱쓗皛ৠ綢屉撋﯅⤄㇢糮꩚ᅺ䏑⤵핫渕眝틁辶黣⚮㬤읙稓伐쏆⸚綀ᥖ㿏晲䊔๣큅᠆࡮㒲쏉䶧쁔쟚﨧씏襫瞟��荄��痮邎馝佞뀵钬ಭ綺磐饪狗촿㺵보깵ꍔ䡇⿩腾Ꟈ筰䵏䧦䔆外ᮺࡷ匞ꫩ㫠싣塞⺡截꥖ⴥ蘟籍퓉ᰧ婑锼戰魍藀ߪ查ྩꂔ䱖穁䙐땴퐁谌菑諸앚굼뾯쁊⟛軠苂뎀ঘ킲ඇ橨蜻䰐嶪ᬞ弯殦귶⇰薪鶑ニ꬛礟쒊焇㛍詙ཀ衞睤㙂됴쫴累릮쾊謡ꋱ溘ܪ握믓䇲돃쨥咽鵝閟ꙑ牊Ṑ㓁溺㱟⯳꟯뒧戜ቼ뵌༧⽆Ⲇ㯞伌ቈ㹝カף��ꎧꘜ꨺꧑��韾섒"}',
                                '{"text":"⤝즫㮂쀱ꪯ፣㇚鵅삄섻≖衕㉏঱⚫��鎉⁶췩্쟴��Ḋ좇鑯넫⿏㩐烃ᬟ㉳斺��ꂷ傳䷼譛ꇆ㌡慎翟瘶䨖픩虷⨨嫝갠ᱰ툈努甹șཥ↓菮滋㠼鬠訮裎အ嗠ṏ탔뎼춡蟱㣴뽳骘쬄ᘵ㢐똏鳛㤣᫖뱥䞡ࢍ⫰榞愺㍴眉伪璬瀎汢햫驛鉄食䊛ᾛ죈㨼笘ꚩ佒嬔볁Џ胫앳̘㛀��頾ᰎ孶䟌⾗些䇛홫緗ܑ踚ヽ휝磁좪隱켧ሬ脝쨘戇㽰ȯ眪蕁ꘈ艢㦪檇擟佃픍൳ߺ᱗ﶚ逄鎐뒽ƈ뢫㛇臊蒠ⷑ醑둭샤쿫ໞᏫ酨᜖ភ᠙᫮梹ࢃ؏市튮틎蒇遃绿巴釗ῆ鑹䲮꠬☐搠潚楛횩⵲絉셫ᥔ郝ٚ䍄끕螻醁㨄"}'
                            ],

Мне нужно, чтобы это было автоматизировано, так как таких текстовых тегов более 2000, и мне нужно, чтобы каждый из них был заполнен случайными символами Unicode, чтобы их было трудно сжать. Буду очень признателен за любую помощь или предложения.

1 Ответ

0 голосов
/ 12 мая 2020

В Vim вам сначала понадобится генератор случайных чисел . Плагин Rndm.vim предоставляет функцию Urndm() для равномерно распределенного псевдослучайного интервала.

Объединив это с nr2char(), мы можем преобразовать в Символ Юникода. Диапазон 0x4E00-0x9FFF содержит, например, УНИФИЦИРОВАННЫЕ ИДЕОГРАФЫ CJK.

Для простоты однострочности здесь я создаю range() из десяти чисел, превращая их в десять случайных единицы, преобразовать в символы, затем присоединиться и вставить как новую строку.

:put =join(map(range(1, 10), 'nr2char(Urndm(0x4e00, 0x9fff))'), '')
瑿桑輛緪蝔呔殐夶級叝
...