Ich habe viele Daten in einer Datei wie wie untenExtrahieren von Feldern aus einer Datei in Shell
alert tcp any any -> any any (msg: "test1"; sid:16521; rev:1;created_at 2010_07_30, updated_at 2016_07_01;)
alert tcp any any -> any any (msg: "test2"; nocase; sid :23476;distance:0; rev:1;created_at 2010_10_30, updated_at 2013_07_11;)
alert tcp any any -> any any (msg: "test3"; sid:236487; file_data; content:"clsid"; nocase; distance:0; created_at 2008_08_03, updated_at 2016_05_01;
Ich möchte sid, msg, created_at und updated_at aus der Datei & Ausgabe sollte extrahieren sieht aus wie
test1 | 16521 | 2010_07_30 | 2016_07_01
test2 | 23476 | 2010_10_30 | 2013_07_11
test3 | 236487| 2008_08_03 | 2016_05_01
und das Skript, die ich verwendet, ist
cat $file | grep -v "^#" | grep "^alert" | sed 's/\"//g' | awk -F ';' '
{
for(i=1;i<=NF;i++)
{
if (match($i,"sid:")>0)
{
split($i, array1, ":")
Rule_sid=array1[2]
}
if(match($i,"msg:")>0)
{
split($i, array, "(")
split(array[2], array2, ":")
message=array2[2]
}
if(match($i,/metadata:/)>0)
{
split($i, array3,/created_at/)
create_date=array3[2]
}
if(match($i,/metadata:/)>0)
{
split($i, array4, ", updated_at ")
update_date=array4[2]
}
}
print Rule_sid "|" message "|" create_date "|" update_date
}' >> Rule_Files/$file
So versehen Sie Code, den Sie versucht. Was ist schief gelaufen? Was ist unterschiedlich zwischen was es ausgegeben und was du wolltest? –
Ich kann created_at & updated_at nicht wie oben korrekt entpacken – mahi
Entschuldigung, ich habe alle erforderlichen Änderungen vorgenommen – mahi