こんにちは、単語の終わりに到達したら、検索を停止したいと思います。
例えば:
ls -al | grep adh
それが私の検索です...「h」の後に停止したい
検索しているディレクトリには の 2 つのインスタンスadh
がadh2
ありadh
ます。adh
adh2
これが理にかなっていることを願っています。質問があればお尋ねください:)
参考までに、私は Linux/perl の初心者です。
$
行末に を使用します。
ls -al | grep " adh$"
それを作るべきです。
$ touch faaa
$ touch faaa2
$ touch faaa3
$ touch afaaa
$ ls -al | grep faaa
-rw-rw-r-- 1 me me 0 Jul 25 14:24 afaaa
-rw-rw-r-- 1 me me 0 Jul 25 14:24 faaa
-rw-rw-r-- 1 me me 0 Jul 25 14:24 faaa2
-rw-rw-r-- 1 me me 0 Jul 25 14:24 faaa3
$ ls -al | grep faaa$
-rw-rw-r-- 1 me me 0 Jul 25 14:24 afaaa
-rw-rw-r-- 1 me me 0 Jul 25 14:24 faaa
$ ls -al | grep " faaa$"
-rw-rw-r-- 1 me me 0 Jul 25 14:24 faaa
一般に、あなたの の後に許可されるものを指定する必要がありますadh
。
あなたの言葉が行末にある場合、Fedorquiの答えは大丈夫です。
adh$
mean -adh
行末と一致します。
これは、スペースで区切られた単語には機能しません。
adh something
adh2 another
同様の場合、次のように書く必要があります。
grep 'adh '
一致adh
および<space>
または
grep `adh[^a-z0-9A-Z]`
一致adh
し、文字と数字以外のもの、または使用できますperl regex
grep -P `adh\b`
の最後はadh
単語境界にする必要があります
など...おそらく、より熟練した正規表現の専門家は、より多くの可能性を提案します..
一般に:
command that generates output | grep pattern | head -1
コマンドによって出力された行のパターンの最初の出現を示します。お気に入り:
ls -l | grep " adh$" | head -1
grep
これには-w
オプションがあります:
-w, --word-regexp
Select only those lines containing matches that form whole
words. The test is that the matching substring must either be
at the beginning of the line, or preceded by a non-word
constituent character. Similarly, it must be either at the end
of the line or followed by a non-word constituent character.
Word-constituent characters are letters, digits, and the
underscore.
したがって、あなたの場合、grep -w adh
あなたが望むことをするべきです。
まず、解析しないでください。これはls
一般的に悪いニュースです。
しかし、これがタグ付けされているので、perl
私はパーリッシュな答えを提供します:
perl -e 'print join "\n", grep { /adh\b/ } glob "*"'
glob
ディレクトリパターンを展開します。
grep
... は、regex を使用するという点で grep に似ていますが、実際には任意のコード ブロックも使用できます。
(したがって、たとえば次のことができます。
grep { -f && /adh\b/ }
その名前のファイル ( file test)だけをフィルタリングするには。または何か-f
を実行します。stat
join
それが言うことをします-結合文字、この場合は改行で複数の結果をくっつけます。
これを試すことができます:
ls -al | grep -Fx adh
どこ、
-F, --fixed-strings
PATTERN を固定文字列 (のリスト) として解釈します。
-x, --line-regexp
行全体に正確に一致する一致のみを選択します。