为什么 grep 直到下一个空格才显示匹配的单词?

Jig*_*dhi 5 grep text-processing

我有一个temp文件,我想要grep匹配模式的唯一单词而不是整个单词。我试过了,grep -o <pattern> file但它没有给我想要的输出

输入

xi29 vddf vss vddf vss int_s s2 rstb mg91a02_l_nd2_bulk_vt1 ln1=16n ln2=16n lp1=16n lp2=16n nf_n1=1 nf_n2=1 nf_p1=1 nf_p2=1  
xi28 vddf vss vddf vss d1 d mg91a02_l_inv_bulk_vt1 ln=16n lp=16n nf_n=1 nf_p=1 nfin_n=2 nfin_p=2 m=1  
xi25 vddf vss vddf vss int_m2 int_m1 mg91a02_l_inv_bulk_vt1 ln=16n lp=16n nf_n=1 nf_p=1 
Run Code Online (Sandbox Code Playgroud)

命令

grep -o 'mg91a02' temp
Run Code Online (Sandbox Code Playgroud)

输出(获得)

mg91a02
mg91a02
mg91a02
Run Code Online (Sandbox Code Playgroud)

输出(所需)

mg91a02_l_nd2_bulk_vt1
mg91a02_l_inv_bulk_vt1
mg91a02_l_inv_bulk_vt1
Run Code Online (Sandbox Code Playgroud)

Arc*_*mar 6

尝试

 grep -E -o 'mg91a02\w+' 
Run Code Online (Sandbox Code Playgroud)

在哪里

  • -E : 扩展正则表达式
  • -o 只打印匹配的单词
  • \w : 不是空白
  • + 一次或多次


αғs*_*нιη 5

grep -o 'mg91a02[^ ]*' file
Run Code Online (Sandbox Code Playgroud)

这意味着打印模式mg91a02直到看不到^第一个空格([^ ])或意味着打印所有不是空格的内容。