Автоматизированный процесс преобразования символов с разделителями табуляции в символы с разделителями вертикальной черты и удаления скрытых символов.

У нас есть текстовый файл с разделителями табуляции, который нужно отправить клиенту в формате с разделителями вертикальной черты, в котором все скрытые символы удалены. Они предлагают вручную переключить разделитель в настройках языка Windows, а затем открыть в текстовой панели для поиска символов. Я чувствую, что это глупая трата времени, которую, скорее всего, можно решить с помощью VB или пакетной обработки.

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

Любое руководство будет очень признательно!

пример данных (просто текстовый файл с разделителями табуляции)

Item number Artist last name    Artist first name   Title   Image width Image height    Paper width Paper height    Retail price    Small Text Descriptive  Category    Format  UPC

person Jimmy    schedule 26.06.2013    source источник
comment
Что вы подразумеваете под потоком данных?   -  person David Ruhmann    schedule 27.06.2013
comment
объясните пожалуйста: пример формата ввода, скрытые символы.   -  person Endoro    schedule 27.06.2013
comment
по сути, это просто инвентарный список с описаниями продуктов, артикулами, весом, доступным количеством и т. д.   -  person Jimmy    schedule 27.06.2013
comment
@Джимми, это нечитаемо в поле для комментариев. Пожалуйста, отредактируйте свой вопрос с новой информацией.   -  person Endoro    schedule 27.06.2013
comment
форматирование выше может быть немного испорчено здесь, но это буквально просто текстовый файл с разделителями табуляции, который необходимо очистить от определенных символов (жесткие возвраты, $ и т. д.)   -  person Jimmy    schedule 27.06.2013
comment
извините, @endoro, я не совсем уверен, как сделать так, чтобы форматирование с вкладками не потерялось в примере.   -  person Jimmy    schedule 27.06.2013
comment
@DavidRuhmann мы пытаемся использовать пакетные файлы для отправки данных вместо EDI   -  person Jimmy    schedule 27.06.2013
comment
hard возвращает, это непросто исправить в пакетном режиме без точного знания структуры. Если не здесь, опубликуйте данные, например. пастебин.   -  person Endoro    schedule 27.06.2013
comment
@endoro Пример данных на pastebin.com/TYRV21rT   -  person Jimmy    schedule 27.06.2013
comment
вы можете использовать только пакет или другие инструменты? например. GNUwin32.   -  person Endoro    schedule 27.06.2013
comment
Вы указываете жесткие возвраты, $ и несколько других случайных символов, характерных для этого клиента, которые необходимо удалить перед отправкой, но вы не указываете конкретно. И в вашем примере нет ни одного из этих символов. Я не знаю, как вы ожидаете, что люди помогут вам. Но см. раздел Как найти и заменить текст в файле с помощью среды командной строки Windows? для ряда параметров. Мне больше всего нравится REPL.BAT — гибридная утилита поиска и замены JScript/пакетных регулярных выражений, которую я написал.   -  person dbenham    schedule 27.06.2013
comment
Вы пробовали Notepad++?   -  person Excel Developers    schedule 27.06.2013


Ответы (1)


Это использует бесплатный GnuSED и преобразует TAB в | при удалении $ Z Y и X (с учетом регистра):

@echo off
sed -e "s/\t/|/g" -e "s/\$//g" -e "s/Z//g" -e "s/Y//g" -e "s/X//g" file.txt >filenew.txt

Этот дополнительный пакетный скрипт удаляет символы конца строки, но некоторые версии ОС удаляют начальные пробелы.

@echo off
sed -e "s/\t/|/g" -e "s/\$//g" -e "s/Z//g" -e "s/Y//g" -e "s/X//g" file.txt >tmp.tmp
for /f "delims=" %%a in (tmp.tmp) do >>filenew.txt set /p "=%%a"<nul
del tmp.tmp
person foxidrive    schedule 27.06.2013
comment
Спасибо @foxidrive, это определенно работает для преобразования во вкладку и удаления указанных символов ... но не касается возврата каретки. Я нашел несколько других вопросов, которые касаются этого с помощью команды coreutils tr, но результаты все еще остаются пустыми. Держу пари, это мое непонимание синтаксиса. - person Jimmy; 27.06.2013