#!/usr/bin/perl -w use strict; use warnings; use diagnostics; my @sensor_lines = `sensors`; my @sensor_devices = []; my %sensor_readings = (); my $temp = 0; my $device = "Unknown"; for my $line (@sensor_lines) { next if ($line =~ /^\s*$/); chomp $line; if ($line =~ /^[^: ]+$/) { ($::device) = $line =~ /^(.*?-\d+)$/; next if ($line !~ /^(ath10k_hwmon-pci|physical|coretemp|Core )/); if ( !defined $::sensor_readings{$::device}) { $::sensor_readings{$::device} = 0; push(@::sensor_devices, $::device); } next; } next if ($line !~ /^(temp|physical|coretemp)/i); my $t = 0; if ($line =~ m{.*?:\s+N/A}) { $t = 0; } else { ($t) = $line =~ /.*?:\s+[+](\d+(\.\d+)?)°C/; } $::temp = $t if (!defined $::temp || $t > $::temp); $::sensor_readings{ $::device } = $::temp; #print "Device[$::device] temp[$::temp]\n"; #$::device = "Unknown"; $::temp = 0; } for my $dev (@::sensor_devices) { print "$dev, "; } print "\n"; for my $dev (@::sensor_devices) { print "$::sensor_readings{$dev}, "; } print "\n";