Я хотел бы найти в строке строку.После того, как я нашел эту строку, я хочу сделать в ней подстрок, чтобы получить идентификатор.Вот пример.
String Testname Testfile 21345 Anfragekennziffer 4519349 Teststring
- , поэтому в этом случае я бы хотел, чтобы скрипт перехватывал строку «Anfragekennziffer» и получал идентификатор, который находится здесь:
4519349
.
Я написал сценарий, который покажет мне идентификаторы, но только если Anfragekennziffer находится в начале строки.Например:
line 1 "Anfragekennziffer4586268" result: "4586268"
line 2 "Anfragekennziffer5686797" result: "5686797"
EG
Входной файл может иметь следующее содержимое:
da adad Anfragekennziffer 6797456
dadad Anfragekennziffer6453914
dasdssss Anfragekennziffer6797433
dddsaaa Anfragekennziffer6609572
aaa Anfragekennziffer2435282
Anfragekennziffer 1234567
Anfragekennziffer21415666
Мой сценарий (см. Ниже) будет иметь следующий результат:
'nnziffer6','nziffer645','ennziffer6','nnziffer66','ffer243528','1234567','21415666'
Итак, я хотел бы, чтобы скрипт запускался в "Anfragekennziffer" и получил мне ID - npo, где Anfragekennziffer находится в строке.
Вот мой код:
#!/usr/bin/perl
use strict;
use warnings;
no warnings 'uninitialized';
my $Source = "Anfragekennziffer.txt";
my $SQL1 = "SQL_Confluence_Tabelle.txt";
my $SQL2 = "SQL_Provider_Antwort.txt";
my $time = localtime;
print "\n";
print "Local date and time: $time\n";
print "\n";
print "IDs wurden übertragen.\n";
print "Folgende SQL-Statements wurden erstellt:\n";
print "\n";
print "'SQL_Confluence_Tabelle'\n";
print "'SQL_Provider_Antwort'\n";
print "\n";
open(QUELLE, "$Source") or die "Open failed:$!";
open(ZIEL1, ">$SQL1") or die "Open failed:$!";
open(ZIEL2, ">$SQL2") or die "Open failed:$!";
my $ids;
my $weg;
while(my $row = <QUELLE>)
{
if ($row =~m/Anfragekennziffer/)
{
$row=substr($row,17,10); #gebe nur IDs aus
$row=~ s/^\s+|\s+$//g; #löscht Leerzeichen
$ids=$ids."'".$row."',"; #kumuliere IDs
$ids=~ s/\r|\n//g;
}
}
$weg=chop($ids);
print ZIEL1 "$ids";
print ZIEL2 "$ids";
close(QUELLE);
close(ZIEL1);
close(ZIEL2);
Было бы замечательно, если бы у кого-то была идея!
СПАСИБО!