123456789101112131415161718192021222324252627282930313233343536 |
- #!/usr/bin/env python3
- import argparse
- import csv
- import sys
- if __name__ == "__main__":
- parser = argparse.ArgumentParser(description="Process UEFI CSV output.")
- parser.add_argument(
- "csv_file", metavar="INPUT", type=argparse.FileType("r"), help="input CSV file"
- )
- parser.add_argument(
- "output_file", metavar="OUTPUT", type=argparse.FileType("w"), help="output file"
- )
- args = parser.parse_args()
- output_lines = []
- reader = csv.DictReader(args.csv_file)
- for row in reader:
- if len(row) != 3:
- print(f"Invalid line: {row}", file=sys.stderr)
- continue
- pnp_id = row["PNP ID"].strip()
- company_name = row["Company"].strip()
- if len(pnp_id) != 3:
- print(f"PNP ID: {pnp_id}", file=sys.stderr)
- continue
- if f"{pnp_id}\t{company_name}\n" not in output_lines:
- output_lines.append(f"{pnp_id}\t{company_name}\n")
- output_lines.sort(key=str.lower)
- for line in output_lines:
- args.output_file.write(line)
|