我正在努力减少流程开始的时间。 这是ps系列。似乎是由空格分隔。
casper@casperhost02 1065$ ps -ef | grep [t]xg casper 5345 1 34 16:40 ? 00:06:56 q /casper_apps/casper/reader/q/txg_dr.q -g 1 -w 80000 -p 3041 -taq /casper_apps/casper/data/fiofs/hdb0 -bin /casper_apps/casper/reader/q -t1 /casper_apps/casper/data/file -cmq /casper_apps/casper/common/q -ref /casper_apps/casper/static -prg txg_dr
我想从ps线切割时间并按字段提取.. 当我使用空格切割和分隔时,时间在第10场。
casper@casperhost02 1075$ ps -ef | grep [t]xg | cut -d' ' -f10
16:40
然而,当我使用awk时,默认情况下由空格分隔的id是字段5.
casper@casperhost02 1076$ ps -ef | grep [t]xg | awk '{print $5}'
16:40
awk和cut中的字段分隔符有什么区别?
答案 0 :(得分:0)
cut
计算空格,awk
计算字段,默认情况下将所有连续的空格视为一个分隔符。请注意,如果您已使用grep
awk
... | awk '/txg/{print $5}'
您还可以将正则表达式(或文字)匹配限制为正确的字段,并消除误报。
答案 1 :(得分:0)
cut
接受单字符分隔符,仅适用于非常简单的文本文件格式。
Awk更加通用,可以处理更复杂的字段分隔符定义,甚至(在某些方言中)可以处理正则表达式。默认情况下,Awk将 空格的序列视为单个分隔符。
切向,您似乎在寻找命令pgrep
。如果您必须重新发明它,请记住,grep x | awk '{y}'
几乎总是可以写成awk '/x/{y}'
。