後ろにドットのない grep パターン

後ろにドットのない grep パターン

ファイルaには以下が含まれます。

abcd
abcd. defgh
defghabcd.
defgh. abcd
abcd .defgh

abcdドットサフィックスなしでパターンを持つすべての行を印刷するには?

印刷する必要があります。

abcd
defgh. abcd
abcd .defgh #. after any other character is good to go

私はそれを試しましたが、うまくgrep 'abcd^[\.]' aいきませんでした。

答え1

^外部括弧を使用すると、[...]行の始まりを意味します。括弧内の点がエスケープされると、間違いを犯します。これは、ドットではなくバックスラッシュとドット以外のものを[^\.]意味します。\..

abcd[^.]別の一致しないコメントABCD行の終わりに。

したがって、以下が必要です。

$ grep -E 'abcd([^.]|$)' <file
abcd
defgh. abcd
abcd .defgh

関連情報