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 Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Отсутствие понимания> раздражает ошибка jzacsh Shell программирование и сценарии 21 3 недели назад 04:10 PM
Ошибка в выходе из Perl скрипта namishtiwari Shell программирование и сценарии 2 06-15-2009 05:02 AM
Ошибка с Perl скрипт ftptail Cooki3s! UNIX для чайников Вопросы И Ответы 2 05-04-2009 11:46 AM
Помощь понимания синтаксических ошибок выпуск warlock129 Shell программирование и сценарии 6 04-26-2009 07:02 PM
Perl скрипт ошибке pietie Shell программирование и сценарии 4 10-15-2008 09:05 AM

Reply
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 07-03-2009
Ex-Capsa's Avatar
Ex-CAPSA Ex-Capsa is offline VIP Member  
VIP-членов
  
 

Регистрация: Mar 2009
Место проведения: Канада / Квебек / Монреаль
Сообщений: 29
Нужна помощь понимание Перл ошибке

Я запросил этот сайт в начале этой недели и получил хороший ответ на Perl
Сценарист и поэтому я сделал этот скрипт из того, что понял из ответов
Но теперь у меня есть ошибка, и я в пень. Она не разобрать правильно
Результат остается на первой строке Моя $ F2 и переиздание в бесконечный цикл
Я уверен, что Существуют более эффективные способы, чем эта. Но вот что я хочу решить
Дан

Это скрипт

Код:
 
#!/usr/local/bin/perl -w
use strict;
 
die "Usage: $0 <file1> <file2> <file_out>\n" unless $#ARGV==2;
my ($file1, $file2, $file3) = @ARGV;
 
open my $f1_in, $file1 or die "Could not open $file1\n";
open my $f2_in, $file2 or die "Could not open $file2\n";
open(my $f3_out, '>', $file3) or die "Could not open $file3: $!\n";
 
while (my $f1 = <$f1_in>) {
my $f2 = <$f2_in>;
$f1 =~ s/^\s+|\s+$//g;
$f2 =~ s/^\s+|\s+$//g;
 
#$\ = "\n";
my $FS = '|';
$, = ',';
 
my $Fld0 = shift;
my $Fld1 = shift;
my $Fld2 = shift;
my $Fld3 = shift;
my $Fld4 = shift;
my $Fld5 = shift;
my $Fld6 = shift;
my $Fld7 = shift;
my $Fld8 = shift;
my $Fld9 = shift;
my $Fld10 = shift;
 
while ($f2){
($Fld0,$Fld1,$Fld2,$Fld3,$Fld4,$Fld5,$Fld6,$Fld7,$Fld8,$Fld9,$Fld10) = split(/[|\n]/,$f2, -1);
print $f3_out ($Fld0, $Fld1, $Fld2, $Fld3, $Fld4, $Fld10);
}
}

Последний раз редактировалось vidyadhar85; на 07-03-2009 05:46 PM.. Основание: Код добавил теги
Old 07-04-2009
KevinADC KevinADC is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 731
Я не уверен, что все эти "Shift" линий там, но ваш цикл проблема здесь:
Код:
while ($f2){
($Fld0,$Fld1,$Fld2,$Fld3,$Fld4,$Fld5,$Fld6,$Fld7,$Fld8,$Fld9,$Fld10) = split(/[|\n]/,$f2, -1);
print $f3_out ($Fld0, $Fld1, $Fld2, $Fld3, $Fld4, $Fld10);
}
}
Вам нужно удалить ", а" петли:

Код:
($Fld0,$Fld1,$Fld2,$Fld3,$Fld4,$Fld5,$Fld6,$Fld7,$Fld8,$Fld9,$Fld10) = split(/[|\n]/,$f2, -1);
print $f3_out ($Fld0, $Fld1, $Fld2, $Fld3, $Fld4, $Fld10);

}

Я не знаю, если это сделает ваш код сделать что-нибудь полезное, но надеемся, он будет работать, и Вы можете дополнительно изменить по мере необходимости.
Old 07-05-2009
Ex-Capsa's Avatar
Ex-CAPSA Ex-Capsa is offline VIP Member  
VIP-членов
  
 

Регистрация: Mar 2009
Место проведения: Канада / Квебек / Монреаль
Сообщений: 29
Спасибо за ответ

Я хочу сделать его на петлю, но не до бесконечности на первой строке file2.
File2 имеет 24000 записей раскол в 10 областях, у меня есть рабочие
В настоящее время, но я использую 2 скриптов сделать его одним извлечения записей в
Другие матчи них. Что я пытаюсь сделать, это их объединения
В одном

Thk
Old 07-05-2009
KevinADC KevinADC is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 731
Если вы не хотите петли бесконечности потом удалить ', а' петля я показал вам необходимо удалить.

---------- Пост обновлен в 02:25 PM ---------- Предыдущее обновление было в 02:15 PM ----------

Может быть, это w2hat вы хотите сделать:

Код:
#!/usr/local/bin/perl
use warnings;
use strict;
 
die "Usage: $0 <file1> <file2> <file_out>\n" unless $#ARGV==2;
my ($file1, $file2, $file3) = @ARGV;
 
open my $f1_in, $file1 or die "Could not open $file1\n";
open my $f2_in, $file2 or die "Could not open $file2\n";
open(my $f3_out, '>', $file3) or die "Could not open $file3: $!\n";
 
while (my $f1 = <$f1_in>) {
   my $f2 = <$f2_in>;
   $f1 =~ s/^\s+|\s+$//g;
   $f2 =~ s/^\s+|\s+$//g;
 
   my($Fld0,$Fld1,$Fld2,$Fld3,$Fld4,$Fld5,$Fld6,$Fld7,$Fld8,$Fld9,$Fld10) = split(/\|/,$f2, -1);
   print $f3_out join(',',$Fld0, $Fld1, $Fld2, $Fld3, $Fld4, $Fld10);
}
Reply

Закладки

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

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

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

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




Часовой пояс GMT -4. Текущее время 02:39 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