2016-04-27 2 views
0

У меня есть довольно ужасный txt-файл, и я ищу способ переформатировать содержимое файла. Пример файла приведен нижеПакетный файл - Чтение файла txt и переформатирование текста

{'4': 20947, 's': 3263, '6': 20837, 'A': 3490, 'U': 3467, 'g': 3277, 'd': 3245, 'H': 3534, 'Y': 3534, 'm': 3297, 'r': 3400, 'u': 3157, 'X': 3501, 'i': 3354, '2': 21012, 'V': 3398, '3': 20864, 'G': 3528, 'M': 3540, '\n': 30212, 'n': 3296, 'T': 3620, 'R': 3500, 'j': 3205, 'W': 3512, 'N': 3483, 'v': 3260, 'I': 3488, 'e': 3179, 'w': 3290, 'P': 3575, '0': 9455, 'L': 3473, 'q': 3284, '1': 21093, 'b': 3216, '9': 18626, 'F': 3494, '8': 20916, '7': 20746, 'x': 3231, 'o': 3162, 'y': 3295, '5': 21467, 'p': 3245, 'E': 3535, 'Q': 3345, 'K': 3619, 'h': 3320, 'f': 3295, 'l': 3284, 'D': 3590, 'c': 3258, 'C': 3473, 'k': 3213, 'a': 3023, 'J': 3504, 't': 3246, 'O': 3463, 'S': 3522, 'B': 3514} 

Я хочу, чтобы иметь возможность прочитать символ в кавычках «», а затем напечатать значение, которое следует после двоеточия, в алфавитном порядке. Например:

a: 1233 
A: 2345 
b: 1023 
B: 1542 
c: 2415 
# And so on.... 

Для простоты, я думал, что делает это с помощью пакетного файла будет идеальным, но не знаете, как идти об этом - любая помощь будет здорово!

+1

есть какая-то связь между числами в исходном файле и те, в пункте назначения? – Stephan

+0

Да, только те же номера в исходном файле, что и в пункте назначения. Извинения, мой пример не точно показал это. Исходный файл содержит счет каждого отдельного символа из другого текстового файла, и я просто хочу, чтобы его можно было форматировать лучше – Klicker

ответ

3

удалить все символы, которые вам не нужны, а затем разобрать с простой for. Сортировка выходных данных.

@echo off 
<input.txt set /p line= 
set line=%line:{=% 
set line=%line:}=% 
set line=%line:'=% 
set line=%line: =% 
((for %%i in (%line%) do @echo %%i)|sort)>output.txt 
+0

Приятный, это именно то, что я был после, спасибо за помощь! Таким образом, это выводит желаемый формат на консоль - как я могу напечатать это в файл? Простите меня, немного cmd noob! – Klicker

+0

просто перенаправляет файл. Вы хотите получить полный цикл 'for', поэтому заключите его в скобки, чтобы вы могли перенаправить все это за один раз. См. Мое редактирование. – Stephan

+0

Так очевидно, когда я это вижу, спасибо за вашу помощь! – Klicker

0

Если вам нужно для пространства, чтобы появиться после двоеточия, то вы можете попробовать:

@echo off 
setlocal enabledelayedexpansion 

<crackline.txt set /p line= 

set line=%line:{=% 
set line=%line:}=% 
set line=%line:'=% 
set line=%line: =% 

for %%i in (%line%) do (
    set L=%%i 
    @echo !L::=: ! 
) 
Смежные вопросы