Я пытаюсь напечатать данные того же типа с разными значениями в каждой строке. После этого объедините каждое значение типа с соответствующим именем (MMaaa/gg/dd).
Пример данных показан ниже. Возьмите группу 1 в качестве примера, имя указано в формате MMxxxx/xxx/xxxx (MMaaa/gg/dd), а значение типа - ID03. Группа состоит из фруктов (например, яблоко), названия фруктов (например, MMbb/gggg/iii) и значений типа (например: ID02, ID04, ID05) или двух типов плодов и имен (например, яблоко и апельсин).Perl: как совместить одно и то же слово в каждой строке до другого слова в новой строке
Единственное сочетание имени яблока и его значений типа - это то, что я хочу. Я попытался напечатать комбинацию, чтобы получить ожидаемый результат, но потерпеть неудачу. До сих пор я попытался это:
while (@array = <FILE>) {
foreach $line (@array) {
if($line =~ m/apple\s{1}MM/) {
$a = $line;
if($line =~ m/(type)/) {
$b = $line;
}
}
print "\n$a/$b\n";
}
}
ДАННЫЕ:
apple
apple MMaaa/gg/dd
type ID03_________________group 1
apple
apple MMsss/ff/dd
orange MMmm/ss
orange MMll/fff______________group 2
apple
apple MMbb/gggg/iii
type ID02
type ID04
type ID05_________________group 3
apple
apple MMhh/jj/lll
orange MMff/gg_______________group 4
apple
apple MMll/pp/ooo
type ID09
type ID03_________________group 5
..
..
.
.
ожидаемый результат:
aaa/gg/dd/ID03
bb/gggg/iii/ID02
bb/gggg/iii/ID04
bb/gggg/iii/ID05
ll/pp/ooo/ID09
ll/pp/ooo/ID03
Это работает! Благодарю. Что делать, если начало значения типа не ID? Это могут быть любые символы. Например, swe_03_K и Re_M_9. – Zoe
@ Zoe - Является ли надпись «_________________group 5» фактически частью ваших данных? – Kenosis
Это не часть данных. – Zoe