J'ai un fichier HEX contenant ce qui suit, je veux les séparer en deux fichiers HEX en fonction de l'adresse:
file_in.hex
@ 00000000
00 FC 00 20 89 01 00 00 D9 01 00 00 DB 01 00 00
DD 01 00 00 DF 01 00 00 E1 01 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 E00 01 00 00
43 00 00 00 00 00 00 00 00 00 00 00 00
@ 200005FC
18 FB FF 7F 01 00 00 00
@ 20000604
00 00 00 00 80 F0 FA 02 80 F0 FA 02 80 00 00 00
00 00 00 00 00 00 FC 02 00 20 64 03 00 20 CC 03 00 20
si l'adresse est égale ou supérieure à @ 20000000, le reste de l'HEX est sauvegardé dans un deuxième fichier HEX, le résultat devrait donc ressembler à ceci:
file_out1.hex
@ 00000000
00 FC 00 20 89 01 00 00 D9 01 00 00 DB 01 00 00
DD 01 00 00 DF 01 00 00 E1 01 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 E3 01 00 00
43 00 00 00 10 00 00 20 00 00 00 00
file_out2.hex
@ 200005FC
18 FB FF 7F 01 00 00 00
@ 20000604
00 00 00 00 80 80 0 F0 FA 02 80 F0 FA 02 00 00 00 00
00 00 00 00 FC 02 00 20 64 03 00 20 CC 03 00 20
Je suis assez nouveau pour Perl. Puis-je utiliser 'split' pour le faire? ou dois-je utiliser une boucle pour faire le travail? Est-ce que awk ou gawk est beaucoup plus facile à faire?
essayez ce script Perl
la source