답변1
저는 3가지 솔루션을 보았습니다(첫 번째는 강력하고, 두 번째는 간단하고, 세 번째는 빠릅니다).
아파치 드릴 비트. 그것은 할 수 있다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와 동일하지만 변환이 더 쉽습니다.