如何从shell脚本中的文件中选择具有特定结构的单词?

时间:2013-01-08 10:18:19

标签: shell grep

我的文件有这样的结构:

    HELLO h e l lo
    HELLO(2) h ee l lo
    HELLOMUM h e l ll m um
    HELLO-FATHER h e llo fa th er
    HOME h o m e
    HONEY h o ne y
    HONEY(2) ho nei y
    HONEY(3) h o ney
    HONEYMOON ho ney m o o n
    HONEY-MOON h o ne y moo n

我想在寻找HELLO这个词的同时,只提取HELLO和HELLO(2)这两个词的亲戚。同样的事情,如果我正在寻找HONEY这个词,我想只有相对于HONEY,HONEY(2)和HONEY(3)的行。 我正在使用

grep -w "HELLO" file.txt

但这让我回到了HELLO,例如,相对于HELLOMUM和HELLO-FATHER的线条。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

我想这应该适合你。

grep '^HELLO[^a-zA-Z]' your_file

测试如下:

> grep '^HELLO[^a-zA-Z\-]' temp
HELLO h e l lo
HELLO(2) h ee l lo
> grep '^HONEY[^a-zA-Z\-]' temp
HONEY h o ne y
HONEY(2) ho nei y
HONEY(3) h o ney
> 

答案 1 :(得分:1)

将您的粘贴示例作为文件,以下grep行有效:

grep 'HELLO[( ]' file
grep 'HONEY[( ]' file