egrep字符串案例

时间:2012-07-23 06:18:28

标签: regex linux shell

我必须从文件名temp中获取grep,这类似

Process             State  
BE_RP:1 [PL_2_3]    Running  
BE_RP:2 [PL_2_4]    Running  
BE_RP:3 [PL_2_5]    Running  
BE_RP:4 [PL_2_6]    Running  
FE_SCTP:0 [PL_2_3]  Running  
FE_SCTP:1 [PL_2_4]  Running  
BE_NMP:0            Not Running  
OAM:0               Running  

我需要编写一个egrep语句,它将返回正在运行或未运行状态的进程数。

4 个答案:

答案 0 :(得分:2)

运行

$ grep -v 'OAM' input | grep -cP '(?<!Not) Running\s*$'
6

未运行

$ grep -v 'OAM' input | grep -cP 'Not Running\s*$'
1

答案 1 :(得分:2)

awk '/^OAM/ { next } /Not Running[ \t]*$/{s++} END {print s, NR-s-1}' foo.txt

打印<running> <not running>

答案 2 :(得分:1)

sed '{
1 d
s/^[^:]*:[0-9]*[ ]*//
s/^[^]]*]//
s/^[ ]*//
}' input_file | sort | uniq -c

答案 3 :(得分:0)

grep -P '^(?!OAM:0).*Running' temp | cut -f2 | wc -l