Импорт набора текстовых файлов в набор столбцов

У меня есть набор текстовых файлов с именем outfile00.txt до outfile297.txt . Каждый файл имеет число (десятичное или иное) в каждой строке, кроме первой (которая похожа на заголовок).

Мне нужно импортировать содержимое каждого файла в столбец, начинающийся с столбца A (который будет соответствовать outfile00.txt ), пока все текстовые файлы не будут импортированы.

Вот пример начала outfile00.txt :

 KP=0.50 ,Ki=0.10 ,Kd=0.05 0.00 0.00 0.00 0.00 

Фактический файл имеет около 1500 строк. Я попытался вручную импортировать текстовый файл, используя вкладку «Данные»; Excel не имеет проблем и текст импортируется.

Как импортировать все текстовые файлы в виде пакета?

РЕДАКТИРОВАТЬ

Я считаю, что я не четко определил свою проблему, так что вот некоторые дополнительные детали.

Что касается метода кибернарда ,

Если я создаю файл значений разделенных табуляцией (символ табуляции находится между буквой и номером на каждой строке) следующим образом:

 a 1 b 2 c 3 e 4 f 5 g 6 

Я могу импортировать текстовый файл напрямую и получить следующее,

Импортированный файл значений с разделителями табуляции

Я надеялся создать файл, похожий на вышеупомянутый TSV-файл. Примером может служить следующее:

 KP=0.50 ,Ki=0.10 ,Kd=0.05 KP=0.50 ,Ki=0.10 ,Kd=0.10 KP=0.50 ,Ki=0.10 ,Kd=0.15 0.00 117.00 123.00 0.00 118.00 124.00 0.00 119.00 125.00 0.00 120.00 126.00 

Который дает следующие результаты импорта,

Импортированные результаты сгенерированного файла TSV

Мне нужно знать, как я могу сгенерировать такой TSV-файл из исходных файлов.

Вы можете использовать Power Query для объединения всех файлов в папку. Power Query – бесплатная надстройка от Microsoft для Excel 2010 и 2013 и встроена в Excel 2016 как Get и Transform.

У Кен Пулса есть подробный учебник.

Как только запрос будет настроен, файлы могут быть добавлены или удалены из папки, и запрос может быть обновлен одним нажатием кнопки.

Первое 00 нужно будет переименовать. Возможно, вам придется удалить другие 0 смещений. Например, 01,02,03 не будет работать, переименуйте до 1,2,3.

Из командной строки перейдите в папку, содержащую все ваши файлы.

FOR / L% i IN (0,1,297) DO тип outfile% i.txt >> master.txt

Это должно объединить все ваши файлы в master.txt.

Таким образом, вам нужен ключ табуляции между файлами. В блокноте создайте файл, содержащий одну вкладку с именем tab.txt после сохранения, убедитесь, что она имеет размер 1 байт, и вы случайно ударили других символов.

FOR / L% i IN (0,1,297) DO тип outfile% i.txt tab.txt >> master.txt

В: Мне нужно знать, как я могу сгенерировать такой TSV-файл из моих исходных файлов.

Знаете ли вы, что для этого есть команда ?

 paste outfile*.txt > out.txt 

Если вы хотите написать свой собственный алгоритм, выберите язык (скриптовый) по вашему выбору.

  1. awk -f awk.awk outfile*.txt > out.txt : awk -f awk.awk outfile*.txt > out.txt

     BEGIN {count = 1} FNR == 1 && FNR < NR {count++} { if ( _[FNR] ) { while ( c[FNR] != count-1 ) { _[FNR] = (_[FNR] " " sprintf("%8s","")) c[FNR]++ } _[FNR] = (_[FNR] "\t" sprintf("%-8s",$0)) c[FNR]++ } else if ( count == 1 ) { _[FNR] = sprintf("%-8s",$0) c[FNR]++ } else { while ( c[FNR] != count-1 ) { if ( _[FNR] ) _[FNR] = (_[FNR] " " sprintf("%8s","")) else _[FNR] = sprintf("%8s","") c[FNR]++ } _[FNR] = (_[FNR] "\t" sprintf("%-8s",$0)) c[FNR]++ } } END { for (i=1; i<=length(_); i++) print _[i] } 
  2. perl : perl perl.pl > out.txt

     use strict; use warnings; my $i; my @rows; my @files = map { "outfile$_.txt" } 0 .. 297; foreach my $file (@files) { open my $infh, '<', $file or die $!; $i=0; while (<$infh>) { chomp; my $data = $_; if (length $rows[$i]) { $rows[$i++] .= "\t" . $data; } else { $rows[$i++] = $data; } } } foreach my $row (@rows) { print "$row\n"; } 

PS В случае, если вам интересно, bash, awk и perl доступны на нескольких платформах, включая Windows ( cygwin – моя рекомендация).

Обновление. Вот файлы ввода, которые я использовал, вместе с выходом paste outfile*.txt > out.txt на Git для Windows .

 ==> outfile00.txt <== KP=0.50 ,Ki=0.10 ,Kd=0.05 0.00 0.00 0.00 0.00 ==> outfile01.txt <== KP=1.50 ,Ki=1.10 ,Kd=1.05 1.00 1.00 1.00 1.00 ==> out.txt <== KP=0.50 ,Ki=0.10 ,Kd=0.05 KP=1.50 ,Ki=1.10 ,Kd=1.05 0.00 1.00 0.00 1.00 0.00 1.00 0.00 1.00 
  • Excel 2013 - есть способ отключить серию диаграмм, не удаляя ее
  • Как использовать условное форматирование на основе сроков в Excel 2013?
  • Как создать несколько экземпляров MS Excel 2013 в Win7 x64?
  • В Excel 2013, где находятся инструменты Visual Basic (VBA), Макросы и AddIn?
  • Excel 2013 Help Offline View
  • Редактирование заявления о суммировании автоматической суммы
  • Как построить отрицательные числа по оси Y в Excel 2013
  • Excel 2013 - объединение условного форматирования
  • Формула Excel для отображения FORMULA
  • Отключить анимацию ячеек Excel 2013
  • В Excel будет применен настраиваемый шаблон по умолчанию для ** всех ** файлов (или только для новых, пустых)?
  • Давайте будем гением компьютера.