我有以下输入:
csdi_d_trs_proc_uxs1 26 24
csdi_d_tdp_process_uxs1 28 32
Run Code Online (Sandbox Code Playgroud)
我只需要包含proc. 当我使用:
grep proc filename
Run Code Online (Sandbox Code Playgroud)
两行都是输出,所以我尝试使用grep -w proc filename,但没有显示输出。
我怎样才能得到只有proc但没有的线process?
Kus*_*nda 11
在-w为标志grep将使定表达式匹配全字。
“单词”是由“非单词字符”(或行首/行尾)包围的“单词字符”字符串。
您的情况的问题是_(下划线)恰好是一个“单词字符”,因此不能单独将单词分隔为单词proc。
不要使用-wwith grep,而是使用一个明确地用 分隔单词的模式_:
grep '_proc_' filename
Run Code Online (Sandbox Code Playgroud)
或者,如果您想用[^a-z]不是_小写字母字符的任何内容分隔单词,请使用代替:
grep '[^a-z]proc[^a-z]' filename
Run Code Online (Sandbox Code Playgroud)
请注意,这不会proc在行的开头/结尾识别为单词。