Get Profile Setting from AnyCubic gcode 3D print file

I wanted to see the settings and profile used to print the sample Owl_pair.gcode. The file has the settings included at the end starting with

;CURA_PROFILE_STRING:

After that there is the base64 encoded zlib inflated profile data. You can extract it by removing everything before the following start code similar to ‘eNrtWk’ (6 bytes or chars) and after the == at the end of this line.

Here is a single line to do this within a Linux system with zlib-flate fro qpdf installed:

awk -F ';CURA_PROFILE_STRING:' '{print $2}' <Owl_pair.gcode |base64 -d -i | zlib-flate -uncompress | tr '\010' '\012' >Owl_pair.gcode.settings

Or here the bash script I used:

#!/bin/sh
# awk -F ';CURA_PROFILE_STRING:' '{print $2}' <Owl_pair.gcode |base64 -d -i | zlib-flate -uncompress | tr '\010' '\012' >Owl_pair.gcode.settings
infile=$1
[ $# -eq 0 ] && { echo "Usage: $0 gcode-file"; exit 999; }
echo "$0\ntool to extract cura settings from gcode file\n"
if [ -f ${infile} ];
then
awk -F ';CURA_PROFILE_STRING:' '{print $2}' < ${infile} |base64 -d -i | zlib-flate -uncompress | tr '\010' '\012' > ${infile}.settings
# less ${infile}.settings
else
echo "\n${infile} not found!\n"
fi
if [ -s ${infile}.settings ];
then
echo "\nSettings written to ${infile}.settings"
else
echo "\nNO Settings found. Either missing ';CURA_PROFILE_STRING:' in gcode file or base64 decode or zlib deflate failed\n"
if [ -f ${infile}.settings ];
then
#delete empty file
rm ${infile}.settings
fi
fi

The output looks similar to this:

layer_height=0.2
wall_thickness=1.2
retraction_enable=True
solid_layer_thickness=1.2
fill_density=25
print_speed=50
print_temperature=200
print_temperature2=0
print_temperature3=0
print_temperature4=0
print_temperature5=0
print_bed_temperature=60
support=None
platform_adhesion=None
support_dual_extrusion=Both
wipe_tower=False
wipe_tower_volume=15
ooze_shield=False
filament_diameter=1.75
filament_diameter2=0
filament_diameter3=0
filament_diameter4=0
filament_diameter5=0
filament_flow=100.0
nozzle_size=0.4
retraction_speed=60.0
retraction_amount=5
retraction_dual_amount=16.5
retraction_min_travel=1.5
retraction_combing=All
retraction_minimal_extrusion=0.02
retraction_hop=0.0
bottom_thickness=0
layer0_width_factor=140
object_sink=0
overlap_dual=0.15
travel_speed=60
bottom_layer_speed=20
infill_speed=0.0
solidarea_speed=30
inset0_speed=30
insetx_speed=40.0
cool_min_layer_time=5
...