ここに私の生データのスニペットがあります:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 16 0 2160 604 520 S 0.0 0.1 0:01.60 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root 10 -5 0 0 0 S 0.0 0.0 0:00.39 events/0
5 root 12 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
6 root 14 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
9 root 10 -5 0 0 0 S 0.0 0.0 0:00.36 kblockd/0
10 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
174 root 14 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
177 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
左の列の先頭に空白があることに注意してください。このデータの各列を独自の配列に分割したいと考えています。この先頭の空白は、分割機能を使用するときに問題を引き起こしています。
私はこれを使用しています:
foreach my $line (@data) {
my @column = split(/\s+/,$line);
chomp (@column);
print "$column[0]\n";
}
すべての要素を印刷するときに発生させたいのcolumn[0]
は、すべての PID 番号をスペースなしで印刷することです。印刷column[1]
すると、すべてのユーザーがスペースなしで印刷されます。列が正しく揃えられているため、すべてが台無しになっています。
ありがとう。