Есть ли способ, когда мы помещаем элемент в массив, можем ли мы поместить его в определенные столбцы.
Я пытаюсь сделать что-то подобное.
push (@array, $val ); .......$val should always go to first column.
push (@array, $val2); .......$val2 should go to second column
push (@array, $val3);........$val3 should go to third
Я пыталсядавая \ t, но не получил правильных результатов.
elsif ($line =~/RELATION/){
push (@mystuff, "$line" .",");
$line = &getline;
}
Мой пример текстового файла выглядит следующим образом
SEVERITY Warning
NODE OTHER "awssystem"
APPLICATION "AWS"
MSGGRP "OpC"
OBJECT "Audit"
MSGKEY "<$MSG_NODE>:hello"
ACK "<$MSG_NODE>:hello"
TEXT "Test one two three"
AUTOACTION "echo \"It has to ack after AA\" > /tmp/banack" ACTIONNODE IP 0.0.0.0 "<$OPC_MGMTSV>" ANNOTATE ACK
OPACTION "echo `hostname`" ANNOTATE
TROUBLETICKET
HELPTEXT "Hello what is this"
SEVERITY Warning
NODE OTHER "awssystem"
MSGGRP "OpC"
OBJECT "Audit"
MSGKEY "<$MSG_NODE>:hello"
MSGKEYRELATION ACK "<$MSG_NODE>:hello"
У меня есть много подобных записей в моем текстовом файле.Я пытаюсь захватить только Severity, application, msggrp и object, в указанном выше приложении вывода отсутствует, поэтому мне просто нужно поставить пробел, если он не может найти приложение.
Мой код выглядит следующим образом:
while ($#myarr > 0 )
-------
---
elsif ($line =~/SEVERITY/){
push (@mystuff, "$line" .",");
$line = &getline;
}
Я хочу, чтобы мой вывод был выглядеть следующим образом
SEVERITY Warning APPLICATION "AWS" MSGGRP "OpC"
SEVERITY Warning MSGGRP "OpC"
Но мой вывод выглядит так
SEVERITY Warning APPLICATION "AWS" MSGGRP "OpC"
SEVERITY Warning MSGGRP "OpC"