[linux] probleem met spaties aan begin van een regel
Paul Slootman
paul+nospam op wurtel.net
Do Feb 20 13:47:41 CET 2020
On Thu 20 Feb 2020, paai wrote:
> > > Als je nu het eerste woord wilt isoleren, moet je met een kanon als gawk op
> > > die mug gaan schieten, terwijl 'cut' veel eleganter lijkt.
> > >
> > > Wat is de mooiste oplossing hervoor?
> > awk '{print $1}' voor het 1e kolom gescheiden door spaties.
> Maar ik wil dus awk niet gebruiken...
Waarom niet? Denk je dat die zwaarder is dan cut?
# ps faxu | time awk '{print $1}' > /dev/null
0.00user 0.00system 0:00.18elapsed 1%CPU (0avgtext+0avgdata 2472maxresident)k
0inputs+0outputs (0major+108minor)pagefaults 0swaps
# ps faxu | time cut -f1 > /dev/null
0.00user 0.00system 0:00.18elapsed 5%CPU (0avgtext+0avgdata 1796maxresident)k
0inputs+0outputs (0major+76minor)pagefaults 0swaps
Het is misschien eventjes 50% meer maxresident k, maar cpu is 5 x lager,
uit dit simpele testje.
Anders wordt het al snel iets als
ps | sed 's,^ *,,' | cut -f1 -d' '
als je per se cut wil gebruiken, maar of het met een extra process in de
pipeline er beter van wordt...
Of:
ps | while read pid rest; do echo $pid; done
maar ik denk dat awk nog steeds sneller is.
Paul
Meer informatie over de Linux
maillijst