• XSS.stack #1 – первый литературный журнал от юзеров форума

помогите со скриптом

redeyex

(L3) cache
Пользователь
Регистрация
11.08.2019
Сообщения
232
Реакции
180
Есть множество sql файлов, где есть вот такие данные
"..\\u043f\\u043e\\u0434\\u043f\\u0438\\u0441\\u0447\\u0438\\u043a\\u0430.."

это uncode escape последовательность (только с двойным \)

помогите со скриптом, которые поможет всё данные такого вида внутри файлов преобразовать в обычный текст (utf-8)..

чтобы работало

script.py input.sql output.sql

можно и не на питоне
 
Есть множество sql файлов, где есть вот такие данные
"..\\u043f\\u043e\\u0434\\u043f\\u0438\\u0441\\u0447\\u0438\\u043a\\u0430.."

это uncode escape последовательность (только с двойным \)

помогите со скриптом, которые поможет всё данные такого вида внутри файлов преобразовать в обычный текст (utf-8)..

чтобы работало

script.py input.sql output.sql

можно и не на питоне

https://letmegooglethat.com/?q=unicode+unescape+online
 
нужен готовый скрипт куда загружаешь input кучу файлов (txt sql неважно), а на выходе он декодит unicode-escape которые встретит в файлах и сохраняет...
 
Python:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

for line in sys.stdin:
    s = re.sub(r'(\\u[0-9A-Fa-f]+)', lambda matchobj: chr(int(matchobj.group(0)[2:], 16)), line.strip())
    print(re.sub(r'(\\)', '', s))

Запуск:

cat input.sql | script.py > output.sql

Осторожно, алгоритм жаден до символа '\'

Ещё можно дамп открывать EmEditor'ом, ctrl+a --> Правка --> Кодировать/декодировать выделенный фрагмент --> Универсальные имена символов в Юникод
 
Последнее редактирование:
а как поменять скрипт чтобы запуск был
script.py input.sql output.sql
?




Python:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

for line in sys.stdin:
    s = re.sub(r'(\\u[0-9A-Fa-f]+)', lambda matchobj: chr(int(matchobj.group(0)[2:], 16)), line.strip())
    print(re.sub(r'(\\)', '', s))

Запуск:

cat input.sql | script.py > output.sql

Осторожно, алгоритм жаден до символа '\'

Ещё можно дамп открывать EmEditor'ом, ctrl+a --> Правка --> Кодировать/декодировать выделенный фрагмент --> Универсальные имена символов в Юникод
 
Последнее редактирование:
Python:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

with open('input.sql', 'r', encoding='utf-8') as file, open('output.sql', 'w', encoding='utf-8') as fl:
    for line in file:
        if len(line) > 0:
            s = re.sub(r'(\\u[0-9A-Fa-f]+)', lambda matchobj: chr(int(matchobj.group(0)[2:], 16)), line.strip())
            fl.write(str(re.sub(r'(\\)', '', s)+'\n'))
            print(str(re.sub(r'(\\)', '', s)))
 
не, я имею ввиду чтобы имена input.sql output.sql брались из параметров
script.py input.sql output.sql
а не были прописали в теле скрипта

script.py файл1 файл2

Python:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

with open('input.sql', 'r', encoding='utf-8') as file, open('output.sql', 'w', encoding='utf-8') as fl:
    for line in file:
        if len(line) > 0:
            s = re.sub(r'(\\u[0-9A-Fa-f]+)', lambda matchobj: chr(int(matchobj.group(0)[2:], 16)), line.strip())
            fl.write(str(re.sub(r'(\\)', '', s)+'\n'))
            print(str(re.sub(r'(\\)', '', s)))
 
не, я имею ввиду чтобы имена input.sql output.sql брались из параметров
script.py input.sql output.sql
а не были прописали в теле скрипта

script.py файл1 файл2
Python:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

for arg in sys.argv[1:]:
    with open(arg, 'r', encoding='utf-8') as file, open('out_'+arg, 'w', encoding='utf-8') as fl:
        for line in file:
            if len(line) > 0:
                s = re.sub(r'(\\u[0-9A-Fa-f]+)', lambda matchobj: chr(int(matchobj.group(0)[2:], 16)), line.strip())
                fl.write(str(re.sub(r'(\\)', '', s)+'\n'))
                print(str(re.sub(r'(\\)', '', s)))
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх