-1

私のファイルはこの構造を持っています:

    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 に関連する行も表示されます。

前もって感謝します。

4

2 に答える 2

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
> 
于 2013-01-08T10:20:50.610 に答える
1

貼り付けた例をファイルとして取得すると、次の grep 行が機能します。

grep 'HELLO[( ]' file
grep 'HONEY[( ]' file
于 2013-01-08T10:44:12.523 に答える