答え1
私は3つの解決策を見ました(最初は強力で、2番目は簡単で、3番目は高速です)。
Apacheドリルビット。それはできるTSVの解析そして他の多くのフォーマット。ただし、この問題がほとんど発生しない場合は重すぎる可能性があります。
PythonまたはPerl onelinerを使用して行を分割して再処理します。例:
$ ps ax | head
PID TTY STAT TIME COMMAND
1 ? Ss 2:40 /sbin/init
2 ? S 0:08 [kthreadd]
3 ? S 0:00 [ksoftirqd/0]
5 ? S< 0:00 [kworker/0:0H]
8 ? S 13:32 [rcu_sched]
9 ? S 0:00 [rcu_bh]
10 ? S 0:07 [migration/0]
11 ? S< 0:00 [lru-add-drain]
12 ? S 0:18 [watchdog/0]
$ ps ax | head |perl -n -e 'sub mynormalize($){ $r = shift;$r->[4]=substr($r->[4], 0, 2); return $r}; my @row = split; print(join("\t", @{ normalize(\@row) }), "\n"); '
PID TTY STAT TIME CO
1 ? Ss 2:40 /s
2 ? S 0:08 [k
3 ? S 0:00 [k
5 ? S< 0:00 [k
8 ? S 13:32 [r
9 ? S 0:00 [r
10 ? S 0:07 [m
11 ? S< 0:00 [l
12 ? S 0:18 [w
- vim + regexまたはsedを使用してください。 #2と同じですが、変換は簡単です。