Source file: /~heha/basteln/PC/USB2LPT/usb2lpt.zip/src/inf/FilterInf.awk

#AWK-Skript zum Filtern der Ergebnis-INF-Datei
#Übergabevariablen:
# VER_INF=hauptversion,nebenversion,jahr,monat*100+tag
# HLP_LNG=hilfedateisprache, "" oder "en" oder "de" oder "pl" oder "en de pl"
#Heraus kommt eine reine ASCII-INF-Datei

BEGIN {
 FS="";		# kein Feld-Separator
 split(VER_INF,v,",");
 DriverVer=sprintf("%02d/%02d/%04d,%d.%02d.%04d.%04d",v[4]/100,v[4]%100,v[3],v[1],v[2],v[3],v[4]);
 helpsrc="usb2lpt.hlp";		# später vielleicht .chm
 if (HLP_LNG) k=split(HLP_LNG,langs," ");
}

/^;/{		# Ganzzeilen-Kommentar zeilenweise löschen
 next;
}

/\$HELPSRC\$/ {
 if (k) {
  for (i=1; i<=k; i++) {
   print gensub(/\$HELPSRC\$/,"..\\\\" langs[i] "\\\\" helpsrc,0);
  }
  next;
 }else{
  sub(/\$HELPSRC\$/,helpsrc);
 }
}

/\$COMMA_HELPSRC\$/ {
 if (HLP_LNG) {
  if (k>1) {
   for (i=1; i<=k; i++) {
    print gensub(/\.hlp\$COMMA_HELPSRC\$/,"." langs[i] ".hlp,..\\\\" langs[i] "\\\\" helpsrc,0);
   }
   next;
  }else sub(/\$COMMA_HELPSRC\$/,",..\\" HLP_LNG "\\" helpsrc);
 }else sub(/\$COMMA_HELPSRC\$/,"");
}

/usb2lpt\.(sys|dll)=1/ {
 if (k>1) next;
}

/\$Chicago\$/ {
 if (k>1) sub(/\$Chicago\$/,"Windows NT");
}

{
 sub(/\$VER_INF\$/,DriverVer);
 if (k>1 && $0 ~ /@$/) next;	# Win9x-Einträge löschen
 sub(/\t*;.*/,"");	# Angehängten Kommentar löschen
 print;
}
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded