The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Добавьте заголовок и прицепов balzzz UNIX для чайников Вопросы И Ответы 2 01-06-2008 08:19 AM
Проверка заголовка и прицеп для данной строки и, если не будет найден, выход из er_ashu UNIX для чайников Вопросы И Ответы 2 11-08-2007 09:55 AM
Скопируйте все файлы с печатью времени и удалять заголовки, трейлер из файла ksrams UNIX для чайников Вопросы И Ответы 35 07-30-2007 02:15 PM
Граф Нет записей в файл без подсчета Header и прицепов отчеты guiguy Shell программирование и сценарии 2 06-07-2007 12:15 PM
объединения двух ввода текстовых файлов d3ck_tm AIX 6 02-28-2006 11:23 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 11-17-2008
oordonez oordonez is offline
Зарегистрированный пользователь
  
 

Регистрация: Nov 2008
Сообщений: 2
Объединить текстовые файлы, а объединить несколько заголовков / прицеп записей в одной.

Положение:
Наша система в настоящее время выполняет работы (COBOL Программа), которая генерирует интерфейс файл для отправки в один из наших поставщиков. Поскольку эта система обрабатывает информацию для более чем 100,000 сотрудников / пенсионеров (и больше), мы хотели бы несколько нить задание на обработку-групп, с тем чтобы сократить его во время выполнения. Это работает хорошо, однако, мы столкнулись с множеством файлов интерфейса, которые должны быть объединены ранее передачи поставщику.


Некоторая информация о файле:
В файл имеет заголовок и прицеп записи, а также прицеп запись отношение общей величины (например, работник рассчитывать, утвержденного отчета и т.д.). Есть нет места сепараторов - это фиксированной длиной поля.

Затруднительного положения в деталях:
Мы хотели бы связывать файлы - это легкая часть. Что делает это трудное, что нам нужно для устранения многочисленных заголовок записи и сохранить только первый. Кроме того, нам необходимо устранить многочисленные прицеп записей, но мы должны добавить все стоимость составляет от каждого прицепа в один прицеп отчете мы будем сохранять в конце.

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

Любая помощь будет с благодарностью.
Old 11-17-2008
Джим Макнамара jim mcnamara is offline Forum Staff  
...@...
  
 

Регистрация: Февраль 2004
Местонахождение: Н. М.
Сообщения: 5759
Вы не дают достаточно информации, чтобы сделать правильный сценарий
Нам необходим образец заголовка строки выборки данных линии и образец прицеп линии.
Old 11-17-2008
oordonez oordonez is offline
Зарегистрированный пользователь
  
 

Регистрация: Nov 2008
Сообщений: 2
Пример файла

Цитата:
Первоначально Послано Джим Макнамара View Post
Вы не дают достаточно информации, чтобы сделать правильный сценарий
Нам необходим образец заголовка строки выборки данных линии и образец прицеп линии.
К сожалению об этом! Вот пример файла - неполные отчеты, так как они достаточно большие. Однако соответствующая информация содержится.


BATCH HEADER PRO 0724200808042008
01E000036841 LEAD05151948F 51498 10012007 YYY
02E000036841 ME 04161988F 10012007
01E000060640 MDGV12251951F 51498 1001200709302008YYY
02E000060640 РД 05061941M 1001200709302008
01E000025850 LDUO06081956F 51498 1001200709302008YYY
02E000025850 ED 10071937M 1001200709302008
01E029009859 DUA05021960F 51498 10012007 YYY
02E029009859 ЛД 03101989F 10012007
02E029009859 ЛД 02041997M 10012007
01E034008379 AEUA09181965F 51498 10012007 YYY
02E034008379 NE 11131991F 10012007
02E034008379 RE 01131993F 10012007
02E034008379 EE 09191959M 10012007
01E045005523 EUA02131964M 51498 10012007 YNN
01E046004280 DUA12041947M 51498 10012007 YYY
02E046004280 D 12121953F 10012007
02E046004280 KE 09211986M 10012007
01E048005119 BDUA01301961F 51498 10012007 YNN
01E055002147 LDUA10011964F 51498 10012007 YYY
02E055002147 РД 11121966M 10012007
02E055002147 ND 02131997F 10012007
02E055002147 Дж.Д. 03111992M 10012007
01E057008796 SEUA12061975F 51498 10012007 YYY
BATCH ПРИЦЕПА 000001150000019908042008

Подробности на прицепе Рекорд: в 00000115 является общей стоимости (численность работников), в 00000199 является общее количество обрабатываемых записей (сотрудников и их иждивенцев). Эти два поля я нужно держать прокатки общей для всех нас объединить файлы.

Подробные отчеты являются более 300 символов, в ширину (дело за то, что нам нужно сделать, но думал ли я включить его).

Спасибо!
Old 11-17-2008
Джим Макнамара jim mcnamara is offline Forum Staff  
...@...
  
 

Регистрация: Февраль 2004
Местонахождение: Н. М.
Сообщения: 5759
при этом: 01E000036841 является работником ID и файлы с именем <something>. DAT
Код:
ls *.dat | read header dummy
# save copies of header
head -1 $header > tmp

awk '{ if (index($0, "HEADER") > 0 || index($0, "TRAILER") >0 ) {last= $0; continue}
       arr[$0]++; print $0   }
       END { for (i in arr) 
             {
               empcnt++ 
               lc+=arr[i]
             } 
             print empcnt, lc > "cntfile" }  ' *.dat >> tmp
awk ' { rec=sprintf("%08d%08d", $1 $2)}
         END { printf("BATCH TRAILER %s%s\n", rec, substr(last, length(last)-7) } ' cntfile >> tmp
mv tmp employee.dat
Это также предполагает, что последние восемь символов BATCH ПРИЦЕПА все то же самое.
Old 11-17-2008
summer_cherry summer_cherry is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Июнь 2007
Месторасположение: Пекин Китай
Сообщения: 1088
привет ниже Perl может помочь вам мало

Использование: Perl a.pl NUM file1 file2 [здесь NUM указать, сколько строк будет заголовок]
Код:
a:
*****
line 1
line 2
1 2 3 4 5
Код:
b:
*****
line 3
line 4
9 8 7 6 5
вывод:
Код:
*****
line 1
line 2
line 3
line 4
10 10 10 10 10
Код:
$header=shift;
undef $/;
my(@head,@body,@foot);
while($file=shift){
	open FH,"<$file" or die "Can not open file $_";
	my $str=<FH>;
	close FH;
	my @temp=split("\n",$str);		
	for( my $i=0;$i<$header;$i++){
		push @head,$temp[$i] if ($#head<$header-1);
	}
	for(my $j=$header;$j<$#temp;$j++){
		push @body,$temp[$j];
	}
	my @footer = split(" ",$temp[$#temp]);
	for($k=0;$k<=$#footer;$k++){
		$foot[$k]=$foot[$k]+$footer[$k];
	}
}
print join "\n",@head;
print "\n",join "\n",@body;
print "\n",join " ",@foot;
Closed Thread

Закладки

Теги
Perl, Perl сдвиг, перемещение, переход на Perl

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 07:58 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0