Ich habe >100 lz4-Dateien mit den Namen:
-rw-r--r-- 1 root root 210M Apr 11 10:11 compressedfile.1-0.lz4
-rw-r--r-- 1 root root 208M Apr 11 11:35 compressedfile.1-1.lz4
-rw-r--r-- 1 root root 185M Apr 11 12:49 compressedfile.2-0.lz4
-rw-r--r-- 1 root root 193M Apr 11 13:06 compressedfile.2-1.lz4
-rw-r--r-- 1 root root 201M Apr 11 14:28 compressedfile.3-0.lz4
-rw-r--r-- 1 root root 236M Apr 11 15:02 compressedfile.3-1.lz4
....
Die Dateien sind große CSV-Dateien, die wie folgt aussehen:
10.27.221.233,11,TCP,SSL,66,8578,0,,(null),510-12
10.133.205.134,10,UDP,ICMP,26,3470,1,,(null),515-10
10.92.160.173,10,TCP,SSL,66,8578,0,,(null),510-15
10.132.81.71,11,TCP,SSL,0,2,0,,(null),511-10
Ich muss IP-Adressen herausfiltern, die SSL verwenden. Meine Methode ist folgende:
lz4 -dc compressedfile.1-0.lz4 | awk -F, '{if ($4=="SSL") print $1}'
das ist nur für eine Datei. Ich habe versucht, mehrere Dateien mit Platzhaltern zu verarbeiten, wie diese hier:
lz4 -dc compressedfile.*.lz4 | awk -F, '{if ($4=="SSL") print $1}'
Warning : compressedfile.1-1.lz4 won't be used ! Do you want multiple input files (-m) ?
Warning : compressedfile.2-0.lz4 won't be used ! Do you want multiple input files (-m) ?
Warning : compressedfile.2-1.lz4 won't be used ! Do you want multiple input files (-m) ?
....
10.27.221.233
10.92.160.173
10.132.81.71
10.140.81.238
10.92.5.90
....
<it ends with the IP (with SSL) on compressedfile.1-0.lz4>
dann habe ich versucht, -m
lz4 eine Option hinzuzufügen:
lz4 -mdc compressedfile.*.lz4 | awk -F, '{if ($4=="SSL") print $1}'
Es wurden komprimierte Dateien des Typs „compressedfile.*“ erstellt :(
Ich brauche Ihren Rat zur Verwendung von Platzhaltern in lz4. Ich versuche, die Verwendung einer for
Schleife möglichst zu vermeiden.
Antwort1
lz4
Dateien können aneinandergereiht und als Einheit verarbeitet werden, daher funktioniert Folgendes:
cat compressedfile.*.lz4 | lz4 -dc | awk -F, '{if ($4=="SSL") print $1}'