.bat файл для редактирования текстового файла

pim123

Нужно в текстовом файле заменить запятые на знак табуляции. Файл очень большой 500 тыс строчек ни ворд ни блокнот не справляются - виснут. Помогите пожалуйста написать .bat файл для его преобразования. Или подскажите что еще можно с ним сделать.

Dasar

поставить любой нормальный редактор, и заменить в нем

Serega009

use perl

Serab

or C

Ivan8209


sed -e 's/,/ /g'

---
"UNIX is user friendly, it's just picky about who its friends are."

Serab

это-то понятно

Marusetta

Вам под винду?
Я в подобной ситуации пользуюсь grep-ом встроенным в regexbuddy. Кстати настоятельно советую - инструмент сверхуниверсальный
ну или киньте мне, преобразую

elenangel

Нужно в текстовом файле заменить запятые на знак табуляции. Файл очень большой 500 тыс строчек ни ворд ни блокнот не справляются - виснут. Помогите пожалуйста написать .bat файл для его преобразования. Или подскажите что еще можно с ним сделать.
AkelPad в Total Commander как вариант. С виду тот же блокнот, но гораздо полезнее последнего

Dimart

или WSH

Ivan8209

> или WSH
Кстати, почему виндузятники, когда говорят про свои "WSH", "VBA," "etc,"
_никогда_ не пишут код?
Наверное, потому что их хвалёные средства просто не работают.
Кстати! Что-то ответа от не видно.
У него, видимо, квалификации хватает только "fail" писать
и сказки про производство рассказывать.
---
Q21: что такое Win2k?
A21: состема.

Dasar

я бы это сделал через редактор (но у меня стоит для этого комбайн Visual Studio - которую я не рекомендую ставить лишь для одной такой задачки)
если надо автоматизировать, то через powershell

Ivan8209

Это прекрасно, что ты нашёл какой-то нестандартный инструмент,
который решает проблему. Почему ты не воспользовался стандартным?
---
Q21: что такое Win2k?
A21: состема.

Andbar

я бы это сделал через редактор (но у меня стоит для этого комбайн Visual Studio - которую я не рекомендую ставить лишь для одной такой задачки)
любой нормальный редактор имеет фичу замены. Правда ввести табуляцию в поле "замена" в большинстве случаев будет затруднительно.
В Far'овском редакторе, например, можно нажать ^Q и следующий символ будет воспринят именно как символ (в частности, табуляция).

al70

Открываем Notepad, копипастим туда вот это:

Const ForReading = 1, ForWriting = 2

Set fso = CreateObject("Scripting.FileSystemObject")
Set InFile = fso.OpenTextFile("in.txt", ForReading)
Set OutFile = fso.OpenTextFile("out.txt", ForWriting, True)

While Not InFile.AtEndOfStream
OutFile.WriteLine(Replace(InFile.ReadLine, ",", Chr(9
Wend

InFile.Close
OutFile.Close

Далее заменяем in.txt на имя исходного файла, сохраняем, например, как replace.vbs в ту папку, где лежит исходный файл, запускаем replace.vbs, радуемся.

al70

их хвалёные средства просто не работают

Еще как работают, просто всех ломает 2 строчки черкануть.

Ivan8209

> Еще как работают, просто всех ломает 2 строчки черкануть.
Ну, во-первых, у тебя получилось не две строчки.
А во-вторых, это тебе легко, а -ю, например,
квалификации не хватает.
Остальные, судя по всему, только умные слова слышали.
---
"Это проявление Аль-Хагг.
Те, кто знают это, знают..."

Serab

Че ты заладил, -? Тебя уже не кормят местные, так ты пищу теперь насильно добываешь? Начал его обвинять еще до того, как он дал повод. Эх, КОНТРА, сдаешь позиции.

Ivan8209

> Начал его обвинять еще до того, как он дал повод.
Если ты здесь недавно, то стой в стороне и смотри.
Он не один повод дал. --- это пример гения-программиста,
который может написать корпоративную систему, но неспособен и
двух строк "черкануть," чтобы решить пользовательскую задачу.
---
CONTRA FACTVM NON DATVR ARGVMENTVM

Serab

Если ты здесь недавно, то стой в стороне и смотри.
Где здесь? Тред на одну страницу.
Если ты и правда думаешь, что он не напишет main { while(c=getc(stdin) != EOF) putc( c==',' ? '\t':c, stdout); }, то я думаю, что ты наивный зазнавшийся лошок.

Ivan8209

> Где здесь?
На форуме.
> Если ты и правда думаешь, что он не напишет
Он --- не напишет.
Ты здесь недавно, так что стой в стороне и смотри.
---
"Люди недалёкие обычно осуждают всё, что выходит за пределы их понимания."

Serab

> Где здесь?
На форуме.
Недавно для чего? Для того, чтобы понять, что ты тут на ровном месте кинулся оскорблять человека? Нет, для этого я тут уже достаточно.
Он --- не напишет.
Нет, ты реально упоротый. , скопипасть, чтобы он в штаны наделал =)
Ты здесь недавно, так что стой в стороне и смотри.
Было бы на что смотреть.

Ivan8209

> Для того, чтобы понять, что ты тут на ровном месте кинулся
> оскорблять человека?
Это не оскорбление, это достоверный факт.
> , скопипасть
Это ты называешь "написать"? Ну-ну!
Ты свои курсовые точно так же пишешь?
---
CONTRA FACTVM NON DATVR ARGVMENTVM

artimon

a.cmd
for /f "tokens=1-5 delims=," %%a in (a.txt) do @echo %%a	%%b	%%c	%%d	%%e

in:
1,2,3,4
x,y,z
a,b
q
S,S,S

out:
1       2       3       4
x y z
a b
q
S S S

okis

--- это пример гения-программиста,
который может написать корпоративную систему, но неспособен и
двух строк "черкануть," чтобы решить пользовательскую задачу.
Ты считаешь, что это плохо?
Думаю, есть и обратные примеры, те, которые под все свои разнообразные нужды написали по скрипту, но сложных систем не разрабатывают.
Или, всё же, программист должен быть как слесарь-многостаночник?

Dimart

КОНТРА, чё злой такой — дефки не дают ?
пс действительно, в ломы было писать две строчки

Ivan8209

> Ты считаешь, что это плохо?
Это показывает, что у него может не быть умений и корпоративные
системы писать.
> Или, всё же, программист должен быть как слесарь-многостаночник?
Видишь ли, если я не знаю VBA, я решаю задачу на том, что знаю,
и ищу способ, как запихать это на целевую систему. Он же
постоянно утверждал, что уникс такой-сякой, в винде всё проще,
но код пишет только тогда, когда его совсем припрут.
Отсюда следует простой вывод: писать этот код ему сложно
(несмотря на то, что он должен быть проще однострочника).
Ну и с разными нюансами.
---
"Это проявление Аль-Хагг.
Те, кто знают это, знают..."

Dasar

ух, какие разборки - смогу я написать прогу для замены символа или нет.
если бы я решал эту задачу в своем настроенном окружении, то это выглядело бы так:

new FileInfo("q.txt").ReadLines.Select(line => line.Replace(',', '\t'.WriteLines("q2.txt");

если в произвольном windows окружении, то через powershell

get-content q.txt | foreach {$_.Replace(',','`t')} > q2.txt

rosali

> a.cmd
а на стопицот строчках проверял? ;)

artimon

Нет конечно. )

hwh2010

Если ты здесь недавно, то стой в стороне и смотри.
ты правда не понимаешь, что тебя здесь держат ради смеха, как исмольника, люсега и прочих неадекватов?

bansek

Это прекрасно, что ты нашёл какой-то нестандартный инструмент,
который решает проблему. Почему ты не воспользовался стандартным?
потому что не умею
скрипты под винду писал пару раз и то либо в цигвине или после установки unxtools
зачем извращаться если есть гугл...
Оставить комментарий
Имя или ник:
Комментарий: