#!/usr/bin/awk -f BEGIN { FS = "\""; kernel = ""; name = ""; serial = ""; vendor = ""; product = ""; seckernel = ""; secname = ""; secserial = ""; secvendor = ""; secproduct = ""; } /KERNEL==/ { kernel = $2; } /KERNELS==/ { seckernel = $2; } /ATTRS{name}/ { secname = $2; } /ATTRS{serial}/ { secserial = $2; } /ATTRS{idVendor}/ { secvendor = $2; } /ATTRS{idProduct}/ { secproduct = $2; } /$^/ { # New section, check the values remembered from the previous # If the section defined a name, and we don't have one, and the # section described an input device, store the name and serial if (match(seckernel, "input") != 0 && secname != "" && name == "") { name = secname; serial = secserial; } # If the section defined a vendor (for USB devices), and we don't # have one, store the vendor and product if (secvendor != "" && vendor == "") { vendor = secvendor; product = secproduct; } # Clear all section values before processing next section seckernel = ""; secname = ""; secserial = ""; secvendor = ""; secproduct = ""; } END { print "DEVICE=\"" kernel "\""; print "NAME=\"" name "\""; print "SERIAL=\"" serial "\""; print "VENDOR=\"" vendor "\""; print "PRODUCT=\"" product "\""; }