このSOの質問には、説明できないことがあります。
grep "\'" input_file
指定されたファイルのすべての行に一致します。\'grepには特別な意味がありますか ?
grep regex GNU拡張:'\''は入力全体の終わりに一致します
それは本当に奇妙な振る舞いですgrep、私はそれを説明する方法がわかりませんが、それは\'どのキャラクターとも一致しないことに注意する必要があります。それはと同じ意味を持っているように見えます$:
$ echo x | grep "x\'"
x
$ echo xy | grep "x\'"
$ echo x | grep "\'x"
アップデート1
http://www.gnu.org/software/findutils/manual/html_node/find_html/grep-regular-expression-syntax.html(リンクを提供してくれたRichard Sitzeに感謝)に記載されているように、実際には$。\'しかし、その間、との違いに気づきました$:
$ echo x | grep 'x$'
x
$ echo x | grep 'x$$'
$ echo x | grep "x\'"
x
$ echo x | grep "x\'\'"
x
$ echo x | grep "x\'\'\'"
x
\'何度でも指定できますが、ではありません$。は1つだけでなければなりません$。
もう一つの重要な発言。マニュアルには次のように書かれています。
‘\'’ matches the end of the whole input
しかし、厳密に言えば、\'入力全体の終わりだけでなく、すべての1行の終わりにも一致するため、これは真実ではありません。
$ (echo x; echo y) | grep "\'"
x
y
正確にはどうですか$。
\はエスケープ文字です。つまり、'は、制御文字としてではなく、検索するテキストと見なす必要があります。